LAMP V2 là gì ?
Vậy LAMP V2 là gì ? Nó có gì khác so với LAMP ở tut trước ?
LAMP V2 thực tế vẫn là Linux + Apache + MariaDB + PHP. Tuy nhiên trong bản hướng dẫn cài LAMP V2 này mình sẽ thay thế PHP bằng PHP-FPM kết hợp mod_fastcgi.
Tại sao lại có sự thay đổi này ?
Trước tiên các bạn có thể đọc 1 số vấn đề dưới đây
– Bạn đang có một web server CentOS 6 chạy Apache với mod_php– Web server của bạn đang có lượng truy cập lớn nên chạy rất chậm– Web server của bạn đang chạy những chương trình PHP khá nặng nề như WordPress, Drupal hay Joomla– Bạn đang sử dụng memcached, opcode, APC hay CDN nhưng vẫn chậm– Bạn nghe nói đến việc sử dụng nginx và PHP-FPM sẽ nhanh hơn nhiều– NHƯNG bạn chưa thể chuyển sang nginx được vì bạn gặp rắc rối với việc chuyển đổi .htaccess và các file virtual host.
Biện pháp
– Bạn có thể mua server với CPU mạnh hơn, nhiều RAM hơn, ổ cứng nhanh hơn, hoặc chuyển sang dùng nginx, và mỗi khi gặp vấn đề với cấu hình lại chạy đôn chạy đáo khắp các forum để tìm cách giải quyết. Cả 2 giải pháp này đều tốn nhiều thời gian và tiền bạc.
– Vẫn còn một giải pháp thứ 3, đó là cài Apache và chạy PHP-FPM thay cho mod_php
Và trong tut này mình sẽ hướng dẫn các bạn thực hiện biện pháp thứ 3.
Hướng dẫn cài đặt LAMP V2 trên Centos 6
Bước 1. Cài đặt Apache, bật UserDir, tạo virtualhost
Ở bước này không có gì thay đổi. Các bạn cài theo các tut sau:
Bước 2. Cài đặt php-fpm
a. Add repo
Các bạn chạy lần lượt các lệnh sau
| rpm -Uvh http://mirrors.digipower.vn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm |
b. Cài đặt php-fpm* Php-fpm 5.4
| yum -y --enablerepo=remi install php php-common php-fpm php-mysql php-gd php-xml php-mbstring php-mcrypt php-pdo php-soap php-curl php-snmp php-pspell php-gmp php-intl php-imap perl-LWP-Protocol-https php-pear-Net-SMTP php-enchant php-pear php-devel php-zlib php-xml php-xmlrpc php-tidy |
* Php-fpm 5.5
| yum -y --enablerepo=remi,remi-php55 install php php-common php-fpm php-mysql php-gd php-xml php-mbstring php-mcrypt php-pdo php-soap php-curl php-snmp php-pspell php-gmp php-intl php-imap perl-LWP-Protocol-https php-pear-Net-SMTP php-enchant php-pear php-devel php-zlib php-xml php-xmlrpc php-tidy |
* Php-fpm 5.6
| yum -y --enablerepo=remi,remi-php56 install php php-common php-fpm php-mysql php-gd php-xml php-mbstring php-mcrypt php-pdo php-soap php-curl php-snmp php-pspell php-gmp php-intl php-imap perl-LWP-Protocol-https php-pear-Net-SMTP php-enchant php-pear php-devel php-zlib php-xml php-xmlrpc php-tidy |
d. Cấu hình
* Mở file /etc/php-fpm.d/www.conf
– Tìm listen = 127.0.0.1:9000 sửa thành listen = /var/run/php-fpm/www.sock
– Tìm
| ;listen.owner ;listen.group ;listen.mode = 0660 |
Sửa thành
| listen.owner = apache listen.group = apache listen.mode = 0660 |
* Mở file /etc/php.ini
– Tìm ;date.timezone = sửa thành date.timezone = “Asia/Saigon”
– Tìm expose_php = On sửa thành expose_php = Off
– Tìm allow_url_fopen = On sửa thành allow_url_fopen = Off
– Nếu muốn disable_function hạn chế run shell thì các bạn tìm dòng disable_functions = sửa thành
| disable_functions = apache_child_terminate,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,virtual,mb_send_mail,link,chgrp,leak,syslog,openlog,mysql_list_dbs,ini_restore,symlink,escapeshellarg,escapeshellcmd,ini_alter,dl,exec,passthru,parse_ini_file,pcntl_exec,pfsockopen,popen,posix_kill,posix_mkfifo,posix_setuid,proc_close,proc_open,proc_terminate,shell_exec,system,leak,posix_setpgid,posix_setsid,proc_get_status,proc_nice,show_source |
Ngoài ra các bạn có thể dis thêm một số functions sau:
| pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority |
Tuy nhiên cần chú ý khi sử dụng tránh lỗi site
* Chạy tiếp lệnh sau
| mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf.bak |
Bước 3. Cài đặt MariaDB
– Đối với php 5.4
| yum -y --enablerepo=remi install phpmyadmin |
– Đối với php 5.5
| yum -y --enablerepo=remi,remi-php55 phpmyadmin |
– Đối với php 5.6
| yum -y --enablerepo=remi,remi-php56 install phpmyadmin |
– Mở file /etc/httpd/conf.d/phpMyAdmin.conf sửa
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require ip 127.0.0.1 Require ip ::1 </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from All Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory> |
Thành
| <Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require ip All Require ip ::1 </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Allow from All Allow from ::1 </IfModule> </Directory> |
Bước 5. Cài đặt mod_fastcgi
| rpm -ivh http://rpm.centoshelp.org/el6/mod_fastcgi/mod_fastcgi-2.4.6-2.el6.cosh.x86_64.rpm |
* Cấu hình
* Mở file /etc/php-fpm.d/fastcgi.conf
– Tìm FastCgiIpcDir /var/run/mod_fastcgi sửa thành #FastCgiIpcDir /var/run/mod_fastcgi
– Tìm FastCgiWrapper On sửa thành #FastCgiWrapper On
– Tìm FastCgiConfig -idle-timeout 20 -maxClassProcesses 1 sửa thành #FastCgiConfig -idle-timeout 20 -maxClassProcesses 1
– Thêm xuống cuối file
| DirectoryIndex index.php AddHandler php-fcgi .php Action php-fcgi /php-fcgi Alias /php-fcgi /cgi-bin-php.fcgi FastCgiExternalServer /cgi-bin-php.fcgi -socket /var/run/php-fpm/www.sock -pass-header Authorization |
Bước 6: Khởi động lại webserver
Các bạn chạy lần lượt các lệnh sau
| chkconfig --level 235 httpd on chkconfig --level 235 mysql on chkconfig --level 235 php-fpm on service httpd start service mysql restart service php-fpm start |
Ok. Done. Trong các tut sau mình sẽ hướng dẫn các bạn một số phương pháp tối ưu vps để đạt hiệu quả tốt nhất.
0 Comments