Bobcares

Nginx php-fpm apc | Configuration setup

by | Nov 16, 2022

Let’s work on setting up Nginx php-fpm apc on CentOS by our Server Management Support services at Bobcares.

Setting up Nginx php-fpm apc on CentOS

Nginx php-fpm apc
Let’s start by adding the necessary repositories:

1. Install and Configure MySQL

Install MySQL by below command.

yum --enablerepo=remi install mysql mysql-server

Next start MySQL and secure it.

service mysqld start
/usr/bin/mysql_secure_installation

While running mysql_secure_installation, answer yes to all the prompts.

2. Install and Configure NGINX and PHP

Further, configure Nginx repo.

nano /etc/yum.repos.d/nginx.repo

Add the below lines inside the nginx.repo file:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

Install nginx, php-fpm, and the necessary PHP modules required.

yum --enablerepo=remi install nginx php php-fpm php-common
yum --enablerepo=remi install php-pear php-pdo php-mysqlnd
yum --enablerepo=remi install php-pgsql php-pecl-memcache
yum --enablerepo=remi install php-gd php-mbstring php-mcrypt php-xml

Now, Install and configure apc.

yum --enablerepo=remi install php-pecl-apc

Configure nginx conf:

nano /etc/nginx/nginx.conf

Use the following configuration.

user nginx;
## set to number of cpu cores
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
    worker_connections 1024;
}
http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    # turn off access log
    access_log off;
    server_names_hash_bucket_size   64;
    ## tcp options
    tcp_nodelay on;
    tcp_nopush on;
    keepalive_timeout 10;
    sendfile on;
    ## include virtual host conf
    include /etc/nginx/vhosts/*.conf;
}

Create the directory folder for virtual hosts with .conf file. Make as default virtual host.

mkdir /etc/nginx/vhosts/
nano /etc/nginx/vhosts/default.conf

Use the following configuration.

server
{
    listen 80 default;
    error_log /var/log/nginx/default.error.log crit;
    root /home/default/public_html;
    index index.php index.html index.htm;
    # use fastcgi for all php files
    location ~ \.php$
    {
        # secure *.php files
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Set up the user and user directory in this particular manner after creating the corresponding domain.conf file.

adduser default
passwd default
mkdir /home/default/public_html
chown root:nginx /home/default/
chmod 775 /home/default/

Make a note that whenever you upload files to public_html, you have to change the permission. chmod 775 (for folders and files that requires write permissions) and chown it to nginx:nginx. Configure php-fpm

nano /etc/php-fpm.d/www.conf

Use the following settings:

[www]
listen = 127.0.0.1:9000
listen.allowed_clients = 127.0.0.1
user = nginx
group = nginx
pm = dynamic
pm.max_children = 10
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 10
pm.max_requests = 500
request_terminate_timeout = 30
slowlog = /var/log/php-fpm/www-slow.log
catch_workers_output = yes
security.limit_extensions = .php
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_admin_value[session.save_path] = /tmp

Change owner of php-fpm folder:

chown -R nginx:nginx /var/log/php-fpm

Set the logging_level value to warning on the main php-fpm configuration file, i.e “/etc/php-fpm.conf”. This log file won’t get enlarged by PHP notices.

log_level = warning

Your configuration is done at this point.

3. Start and Configure Services

service nginx start
service php-fpm start

If both daemons ran without any error then configure all to start on boot.

chkconfig nginx on
chkconfig php-fpm on
chkconfig mysqld on

4. Test NGINX

Before performing any tests first, disable iptables. This will be configured later after we are sure that everything is running fine.

service iptables stop

Finally, try accessing the domain you have set up on the virtual host. If you got everything right you will get a 403 Nginx page.

[Looking for a solution to another query? We are just a click away.]

Conclusion

To conclude, you have performed Setting up Nginx php-fpm apc on CentOS with Configure nginx.conf.

PREVENT YOUR SERVER FROM CRASHING!

Never again
lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server
24/7 so that it remains lightning fast and secure.

GET STARTED

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.

Privacy Preference Center

Necessary

Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

PHPSESSID - Preserves user session state across page requests.

gdpr[consent_types] - Used to store user consents.

gdpr[allowed_cookies] - Used to store user allowed cookies.

PHPSESSID, gdpr[consent_types], gdpr[allowed_cookies]
PHPSESSID
WHMCSpKDlPzh2chML

Statistics

Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.

_ga - Preserves user session state across page requests.

_gat - Used by Google Analytics to throttle request rate

_gid - Registers a unique ID that is used to generate statistical data on how you use the website.

smartlookCookie - Used to collect user device and location information of the site visitors to improve the websites User Experience.

_ga, _gat, _gid
_ga, _gat, _gid
smartlookCookie
_clck, _clsk, CLID, ANONCHK, MR, MUID, SM

Marketing

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.

IDE - Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user.

test_cookie - Used to check if the user's browser supports cookies.

1P_JAR - Google cookie. These cookies are used to collect website statistics and track conversion rates.

NID - Registers a unique ID that identifies a returning user's device. The ID is used for serving ads that are most relevant to the user.

DV - Google ad personalisation

_reb2bgeo - The visitor's geographical location

_reb2bloaded - Whether or not the script loaded for the visitor

_reb2bref - The referring URL for the visit

_reb2bsessionID - The visitor's RB2B session ID

_reb2buid - The visitor's RB2B user ID

IDE, test_cookie, 1P_JAR, NID, DV, NID
IDE, test_cookie
1P_JAR, NID, DV
NID
hblid
_reb2bgeo, _reb2bloaded, _reb2bref, _reb2bsessionID, _reb2buid

Security

These are essential site cookies, used by the google reCAPTCHA. These cookies use an unique identifier to verify if a visitor is human or a bot.

SID, APISID, HSID, NID, PREF
SID, APISID, HSID, NID, PREF