2015-03-04

After we finished work on the Ubuntu Server installation, 13.04, put the php5-fpm + all necessary modules installed nginx on the server, put the MariaDB + phpMyAdmin, we can start editing configuration files and test runs of different scripts, for example with the information about the current version of php and installed modules. Well let’s get started:

Setting up Ubuntu Server 13.04

To begin with, we need to add a new user to the server, so that in future we can implement all the planned us. To do this, go to the server via SSH as root user, and create a new user by limiting his access to the Schell:

useradd darelvc/home/-m-b-U-s/bin/false

Next we need to set a new password for the user we created darelvc:

passwd darelvc

Next, create the required directory for us, in which we are going to work in the future:

mkdir/home/darelvc/public_html

I chose this path because the public_html directory is the default catalog for the control panel Cpanel, which I worked for a long time.

Now we need to add a new user to this directory:

chown-R darelvc:/home/darelvc/public_html

Continue to provide access to the directory of nginx:

CD/home/darelvc/

usermod-a-G www-data darelvc

Now you are ready to create our first configuration file, create it for nginx, it will perform several commands:

touch/etc/nginx/conf.d/darelvc.vn. ua. conf

Please note that all newly created configuration files must have the extension. conf, to start here in the main configuration file, this will create a duplicate, just in case:

CP/etc/nginx/nginx.conf/etc/nginx/nginx.conf_old

Open and replace its contents with the new:

Vim/etc/nginx/nginx.conf

user www-data;

# As a thumb rule: One per CPU. If you are serving a large amount

# of static files, which requires blocking disk reads, you may want

# to increase this from the number of cpu_cores available on your

# system.

#

# The maximum number of connections for Nginx is calculated by:

# max_clients = worker_processes * worker_connections

worker_processes 1;

# Maximum file descriptors that can be opened per process

# This should be > worker_connections

worker_rlimit_nofile 8192;

events {

# When you need > 1000 * cpu_cores connections, you start optimizing

# your OS, and this is probably the point at where you hire people

# who are smarter than you, this is *a lot* of requests.

worker_connections 1000;

}

error_log /var/log/nginx/error.log;

pid /var/run/nginx.pid;

http {

charset utf-8;

# Set the mime-types via the mime.types external file

include mime.types;

# And the fallback mime-type

default_type application/octet-stream;

# Click tracking!

access_log /var/log/nginx/access.log;

# Upstream to abstract back-end connection(s) for PHP

upstream php {

server unix:/tmp/php5-fpm.sock;

}

# Hide nginx version

server_tokens off;

# ~2 seconds is often enough for HTML/CSS, but connections in

# Nginx are cheap, so generally it’s safe to increase it

keepalive_timeout 20;

# You usually want to serve static files with Nginx

sendfile on;

tcp_nopush on; # off may be better for Comet/long-poll stuff

tcp_nodelay off; # on may be better for Comet/long-poll stuff

server_name_in_redirect off;

types_hash_max_size 2048;

gzip on;

gzip_http_version 1.0;

gzip_comp_level 5;

gzip_min_length 512;

gzip_buffers 4 8k;

gzip_proxied any;

gzip_types

# text/html is always compressed by HttpGzipModule

text/css

text/plain

text/x-component

application/javascript

application/json

application/xml

application/xhtml+xml

application/x-font-ttf

application/x-font-opentype

application/vnd.ms-fontobject

image/svg+xml

image/x-icon;

# This should be turned on if you are going to have pre-compressed copies (.gz) of

# static files available. If not it should be left off as it will cause extra I/O

# for the check. It would be better to enable this in a location {} block for

# a specific directory:

# gzip_static on;

gzip_disable “msie6″;

gzip_vary on;

include /etc/nginx/conf.d/*.conf;

include /etc/nginx/sites-enabled/*;

}

После чего можно отредактировать дефолтный конфигурационный файл nginx :

cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default_old

vim /etc/nginx/sites-available/default

server {

listen 80 default; ## listen for ipv4; this line is default and implied

listen [::]:80 default ipv6only=on; ## listen for ipv6

# Make site accessible from http://localhost/ or server IP-address

server_name localhost;

server_name_in_redirect off;

charset utf-8;

access_log /usr/share/nginx/access.log;

error_log /usr/share/nginx/error.log;

root /usr/share/nginx/www;

index index.php index.html index.htm;

location / {

# First attempt to serve request as file, then

# as directory, then trigger 404

try_files $uri $uri/ =404;

}

# pass the PHP scripts to FPM socket

location ~ \.php$ {

try_files $uri =404;

fastcgi_split_path_info ^(.+\.php)(/.+)$;

# NOTE: You should have “cgi.fix_pathinfo = 0;” in php.ini

fastcgi_pass php;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /usr/share/nginx/www$fastcgi_script_name;

fastcgi_param DOCUMENT_ROOT /usr/share/nginx/www;

# send bad requests to 404

fastcgi_intercept_errors on;

include fastcgi_params;

}

}

It’s not the destination data type configuration files, in the future we will add, depending on our requirements.

We can now begin to create our 1 configuration file:

Vim/etc/nginx/conf.d/darelvc.vn. ua. conf

It prescribes:

server {

listen  91.223.223.108:80;

root /home/darelvc/public_html;

access_log /home/darelvc/logs/nginx.access.log;

server_name darelvc.vn.ua www.darelvc.vn.ua;

index index.php index.htm index.html;

location ~ \.(gif|jpeg|jpg|txt|png|css|js|htm|html|csv|doc|xls|xml|sql|ico)$ {

access_log        off;

expires           max;

}

location / {

try_files       $uri $uri/ @rewrite;

}

location @rewrite {

rewrite         ^/(.*)$ /index.php?q=$1;

}

location ~ \.php$ {

fastcgi_pass unix:/tmp/php5-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;

include        fastcgi_params;

}

location = /favicon.ico {

log_not_found off;

access_log off;

}

location = /robots.txt {

allow all;

log_not_found off;

access_log off;

}

location ~ /\.ht {

deny  all;

}

}

After work done, be sure to restart nginx and check whether the flecks are errors on reboot:

Service nginx restart

As you can see there are no errors, now we need to configure the Setup for our site under php-fpm, open the file:

Vim/etc/php5/fpm/pool.d/darelvc.conf

And set it to:

listen = /tmp/php5-fpm.sock

listen.mode = 0666

user = darelvc

group = darelvc

php_admin_value[upload_tmp_dir] = /home/darelvc/tmp

php_admin_value[soap.wsdl_cache_dir] = /home/darelvc/tmp

php_admin_value[date.timezone] = Europe/Kiev

pm = static

pm.max_children = 1

pm.max_requests = 250

Then restart our php-fpm

php5-fpm service restart

Now it is time to test our websites php 5.4 on our server, as well as to test launch phpMyAdmin

First head over again in the pool directory (d) and edit the file www.conf

CD/etc/php5/fpm/pool.d

Vim www.conf

Replace the line:

listen =/var/run/php5-fpm.sock

To:

listen =/tmp/php5-fpm.sock

Then create a directory:

mkdir/usr/share/nginx/www/

It has create our index.php file with this content:

Vim/usr/share/nginx/www/inex.php

<? php phpinfo ();? >

1

<? php phpinfo ();? >

We now have when opening the page to display information about PHP. To open the switch at http://IP_сервера/index.php

php version

Ûhuu, everything works just great, now let’s test our phpMyAdmin

CD/usr/share/nginx/www/

sudo ln-s/usr/share/phpmyadmin

In order to test the turn on link:

http://IP_сервера/phpmyadmin/

phpMyAdminKak see also works wonderfully (with 1 <span id="ouHig

Show more