Разлика между версии на „Инсталиране на nginx под Ubuntu“

от БАРЗИКТ Wiki
Направо към: навигация, търсене
(Автоматизиран скрипт nginx_install.sh)
 
(6 intermediate revisions by the same user not shown)
Ред 35: Ред 35:
  
 
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
sudo apt-get install php5-fpm php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-xcache
+
sudo apt-get install php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext
 
</pre>
 
</pre>
  
Възможни промени в '''/etc/php5/fpm/php.ini'''
+
Възможни промени в '''/etc/php/7.0/fpm/php.ini'''
 
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 
cgi.fix_pathinfo=1
 
cgi.fix_pathinfo=1
Ред 90: Ред 90:
 
                 try_files $uri =404;
 
                 try_files $uri =404;
 
                 include fastcgi_params;
 
                 include fastcgi_params;
                 fastcgi_pass unix:/tmp/php5-fpm.sock;
+
                 fastcgi_pass unix:/run/php/php7.0-fpm.sock;
 
                 #fastcgi_pass 127.0.0.1:9000;
 
                 #fastcgi_pass 127.0.0.1:9000;
 
                 fastcgi_index index.php;
 
                 fastcgi_index index.php;
Ред 104: Ред 104:
  
 
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
sudo service php5-fpm restart
+
sudo service php7.0-fpm restart
 
sudo service nginx start
 
sudo service nginx start
 
</pre>
 
</pre>
Ред 111: Ред 111:
  
 
Проверката на производителността и стабилността на сървъра може да се извърши чрез [http://www.xenoclast.org/autobench/ autobench].
 
Проверката на производителността и стабилността на сървъра може да се извърши чрез [http://www.xenoclast.org/autobench/ autobench].
 +
 +
=== Инсталиране на MySQL сървър (опционално)===
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
sudo apt-get install mysql-server mysql-client
 +
</pre>
 +
 +
===Автоматизиран скрипт nginx_install.sh (Ubuntu 14 + PHP5)===
 +
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap;white-space: -pre-wrap;white-space: -o-pre-wrap; word-wrap: break-word">
 +
#!/bin/bash
 +
# This script will test if you have given a leap year or not.
 +
 +
echo "Type the domain name, followed by [ENTER]:"
 +
 +
read server_name
 +
 +
echo "**** Updating the system ****"
 +
sudo apt-get update
 +
sudo apt-get upgrade -y
 +
clear
 +
 +
echo "**** Intalling MySQL ****"
 +
sudo apt-get install mysql-server mysql-client -y
 +
clear
 +
 +
echo "**** Installing nginx ****"
 +
sudo apt-get install nginx -y
 +
clear
 +
 +
echo "**** Installing php-fpm ****"
 +
sudo apt-get install php5-fpm php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-xcache -y
 +
clear
 +
 +
echo "**** Modifying php.ini ****"
 +
sudo sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=1/g' /etc/php5/fpm/php.ini
 +
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 512M/g' /etc/php5/fpm/php.ini
 +
sudo sed -i 's/post_max_size = 8M/post_max_size = 128M/g' /etc/php5/fpm/php.ini
 +
clear
 +
 +
echo "**** Modifying nginx.conf ****"
 +
sudo sed -i 's/keepalive_timout 65/keepalive_timout 2/g' /etc/nginx/nginx.conf
 +
clear
 +
 +
echo "**** Creating default nginx site configuration ****"
 +
sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.original
 +
sudo echo "server {
 +
        listen  80;
 +
        listen  [::]:80 default ipv6only=on;
 +
 +
        root /var/www/;
 +
        index index.php index.html index.htm;
 +
 +
        server_name  $server_name;
 +
 +
        location / {
 +
                try_files \$uri \$uri/ /index.php?page=\$request_uri;
 +
        }
 +
 +
        location ~ \.php\$ {
 +
                try_files \$uri =404;
 +
                include fastcgi_params;
 +
                fastcgi_pass unix:/var/run/php5-fpm.sock;
 +
                #fastcgi_pass 127.0.0.1:9000;
 +
                fastcgi_index index.php;
 +
                fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
 +
                fastcgi_param HTTPS off;
 +
        }
 +
        }" >> /etc/nginx/sites-available/default
 +
clear
 +
 +
echo "**** Restarting the servicesw ****"
 +
sudo service php5-fpm restart
 +
sudo service nginx-restart
 +
clear
 +
 +
echo "**** All done! ****"
 +
 +
</pre>

Текуща версия към 17:18, 9 ноември 2016


Nginx е безплатен HTTP, IMAP/POP3 и "Reverse proxy" сървър с отворен код.

Инсталиране на nginx под Ubuntu Server

Посочените конфигурации са тествани с Ubuntu Server 14.10.

Основните стъпки при инсталирането и конфигурирането на nginx са:

  1. Обновяване на Ubuntu Server (опционално)
  2. Инсталиране на nginx
  3. Инсталиране и конфигуриране на php-fpm
  4. Конфигуриране на сървъра (nginx.conf)
  5. Конфигуриране на сайт (default)
  6. Стартиране на сървъра
  7. Проверка на сървъра (опционално)

Обновяване на Ubuntu

sudo apt-get update
sudo apt-get upgrade

Инсталиране на nginx

sudo apt-get install nginx

Инсталиране и конфигуриране на php-fpm

PHP-FPM (FastCGI Process Manager) е алтернативно PHP FastCGI решение, оптимизирано за работа при високо натоварване.

sudo apt-get install php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache  php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext

Възможни промени в /etc/php/7.0/fpm/php.ini

cgi.fix_pathinfo=1
upload_max_filesize = 512M
post_max_size = 128M

Конфигуриране на сървъра (nginx.conf)

Конфигурацията е примерна и се препоръчва внимателно да се разгледа официалната документация на nginx с цел да се получи максимална производителност и защита на данните.

Промени в /etc/nginx/nginx.conf

worker_processes 1;

events {
       worker_connections 1024;
}

keepalive_timout 2;

fastcgi_read_timeout 600;

Забележка: worker_processes е равна на броя на ядрата на процесора.

Конфигуриране на сайт (default)

Конфигурацията е примерна и се препоръчва внимателно да се разгледа официалната документация на nginx с цел да се получи максимална производителност и защита на данните.

Примерна конфигурация за CMS Made Simple.

Промени в /etc/nginx/sites-available/default

server {
        listen   80; 
        listen   [::]:80 default ipv6only=on;

        root /var/www/;
        index index.php index.html index.htm;

        server_name www.test.com;

        location / {
                try_files $uri $uri/ /index.php?page=$request_uri;
        }

        location ~ \.php$ {
                try_files $uri =404;
                include fastcgi_params;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
                #fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param HTTPS off;
        }
	}

Забележка: Конфигурации за пренаписване(rewrite) за най-често използваните системи са поместени на http://wiki.nginx.org/Main

Стартиране на сървъра

sudo service php7.0-fpm restart
sudo service nginx start

Проверка на сървъра

Проверката на производителността и стабилността на сървъра може да се извърши чрез autobench.

Инсталиране на MySQL сървър (опционално)

sudo apt-get install mysql-server mysql-client

Автоматизиран скрипт nginx_install.sh (Ubuntu 14 + PHP5)

#!/bin/bash
# This script will test if you have given a leap year or not.

echo "Type the domain name, followed by [ENTER]:"

read server_name

echo "**** Updating the system ****"
sudo apt-get update
sudo apt-get upgrade -y
clear

echo "**** Intalling MySQL ****"
sudo apt-get install mysql-server mysql-client -y
clear

echo "**** Installing nginx ****"
sudo apt-get install nginx -y
clear

echo "**** Installing php-fpm ****"
sudo apt-get install php5-fpm php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-xcache -y
clear

echo "**** Modifying php.ini ****"
sudo sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=1/g' /etc/php5/fpm/php.ini
sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 512M/g' /etc/php5/fpm/php.ini
sudo sed -i 's/post_max_size = 8M/post_max_size = 128M/g' /etc/php5/fpm/php.ini
clear

echo "**** Modifying nginx.conf ****"
sudo sed -i 's/keepalive_timout 65/keepalive_timout 2/g' /etc/nginx/nginx.conf
clear

echo "**** Creating default nginx site configuration ****"
sudo mv /etc/nginx/sites-available/default /etc/nginx/sites-available/default.original
sudo echo "server {
        listen   80;
        listen   [::]:80 default ipv6only=on;

        root /var/www/;
        index index.php index.html index.htm;

        server_name  $server_name;

        location / {
                try_files \$uri \$uri/ /index.php?page=\$request_uri;
        }

        location ~ \.php\$ {
                try_files \$uri =404;
                include fastcgi_params;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                #fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
                fastcgi_param HTTPS off;
        }
        }" >> /etc/nginx/sites-available/default
clear

echo "**** Restarting the servicesw ****"
sudo service php5-fpm restart
sudo service nginx-restart
clear

echo "**** All done! ****"