Разлика между версии на „Инсталиране на nginx под Ubuntu“
(Нова страница: Category:servers [http://www.nginx.org Nginx] е бзплатен HTTP, IMAP/POP3 и "Reverse proxy" сървър с отворен код. ==Инсталиран...) |
(→Автоматизиран скрипт nginx_install.sh) |
||
(7 intermediate revisions by the same user not shown) | |||
Ред 1: | Ред 1: | ||
[[Category:servers]] | [[Category:servers]] | ||
− | [http://www.nginx.org Nginx] е | + | [http://www.nginx.org Nginx] е безплатен HTTP, IMAP/POP3 и "Reverse proxy" сървър с отворен код. |
==Инсталиране на nginx под Ubuntu Server== | ==Инсталиране на nginx под Ubuntu Server== | ||
Ред 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 | + | 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/ | + | Възможни промени в '''/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 | ||
Ред 47: | Ред 47: | ||
===Конфигуриране на сървъра (nginx.conf)=== | ===Конфигуриране на сървъра (nginx.conf)=== | ||
− | Конфигурацията е примерна и се препоръчва внимателно да се разгледа официалната документация на nginx с цел да се получи максимална производителност и | + | Конфигурацията е примерна и се препоръчва внимателно да се разгледа официалната документация на nginx с цел да се получи максимална производителност и защита на данните. |
Промени в '''/etc/nginx/nginx.conf''' | Промени в '''/etc/nginx/nginx.conf''' | ||
Ред 67: | Ред 67: | ||
===Конфигуриране на сайт (default)=== | ===Конфигуриране на сайт (default)=== | ||
− | Конфигурацията е примерна и се препоръчва внимателно да се разгледа официалната документация на nginx с цел да се получи максимална производителност и | + | Конфигурацията е примерна и се препоръчва внимателно да се разгледа официалната документация на nginx с цел да се получи максимална производителност и защита на данните. |
Примерна конфигурация за [http://http://www.cmsmadesimple.org CMS Made Simple]. | Примерна конфигурация за [http://http://www.cmsmadesimple.org CMS Made Simple]. | ||
Ред 90: | Ред 90: | ||
try_files $uri =404; | try_files $uri =404; | ||
include fastcgi_params; | include fastcgi_params; | ||
− | fastcgi_pass unix:/ | + | 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 | + | sudo service php7.0-fpm restart |
sudo service nginx start | sudo service nginx start | ||
</pre> | </pre> | ||
Ред 110: | Ред 110: | ||
===Проверка на сървъра=== | ===Проверка на сървъра=== | ||
− | Проверката на производителността и | + | Проверката на производителността и стабилността на сървъра може да се извърши чрез [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" сървър с отворен код.
Съдържание
- 1 Инсталиране на nginx под Ubuntu Server
- 1.1 Обновяване на Ubuntu
- 1.2 Инсталиране на nginx
- 1.3 Инсталиране и конфигуриране на php-fpm
- 1.4 Конфигуриране на сървъра (nginx.conf)
- 1.5 Конфигуриране на сайт (default)
- 1.6 Стартиране на сървъра
- 1.7 Проверка на сървъра
- 1.8 Инсталиране на MySQL сървър (опционално)
- 1.9 Автоматизиран скрипт nginx_install.sh (Ubuntu 14 + PHP5)
Инсталиране на nginx под Ubuntu Server
Посочените конфигурации са тествани с Ubuntu Server 14.10.
Основните стъпки при инсталирането и конфигурирането на nginx са:
- Обновяване на Ubuntu Server (опционално)
- Инсталиране на nginx
- Инсталиране и конфигуриране на php-fpm
- Конфигуриране на сървъра (nginx.conf)
- Конфигуриране на сайт (default)
- Стартиране на сървъра
- Проверка на сървъра (опционално)
Обновяване на 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! ****"