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
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
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.
0 Comments