Một vài lưu ý khi cài đặt php7 (php-fpm) từ source code trên linux (fedora)

Giả sử bạn muốn cài đặt trên fedora, php7, php-fpm với nginx là proxy hứng request đẩy qua cho php xử lý (thông qua php-fpm).

Khi cài đặt từ source code có thể bạn sẽ gặp những vấn đề sau:

  1. Thiếu các thư viện khi chạy lệnh ./congigure
  2. Chỉ định đường dẫn đến thư mục sẽ cài php mà bạn muốn( hữu ích khi bạn muốn cài nhiều phiên bản php trên môi trường làm việc của bạn).
  3. Chỉ định đường dẫn đến file php.ini
  • Thiếu các thư viện khi chạy lệnh ./congigure

Tuỳ theo các tuỳ chọn của bạn, khi chạy lệnh ./configure bạn có thể thiếu những thư viện mà php cần, ví dụ bạn thiếu thư viện liên quan đến utf8 chẳng hạn, hãy dùng yum để tìm

  • Chỉ định đường dẫn đến file php.ini

Khi đó bạn chỉ cần copy file php.ini vào thư mục /etc/php7/php.ini, mọi thay đổi trong file này, sẽ ảnh hưởng đến cấu hình của php trên máy của bạn.

  • Chỉ định đường dẫn sẽ cài php ( hữu ích khi bạn muốn cài nhiều phiên bản php trên môi trường làm việc của bạn).

Lưu ý nữa: khi bạn khởi động php-fpm, mặc định php-fpm sẽ đọc file cấu hình của php-fpm tại /usr/local/etc/php-fpm.conf. Nếu bạn muốn chỉ định đến file cấu hình php-fpm trong thư mục cài đặt php /opt/php7/etc/php-fpm.conf.

 

Đây là script mình lưu trên gíst
https://gist.github.com/nguyentienlong/120af89ab11e5ec48014

Tham khảo:
http://php.net/manual/en/install.pecl.php-config.php
http://php.net/manual/en/install.unix.nginx.php

Nginx resolve 403 forbidden error

When configuration virtual host in nginx with below configuration file.

virtual host configuration for php.sandbox
virtual host configuration for php.sandbox

Might be, you will have trouble with 403 forbidden error:

nginx virtual host 403
nginx virtual host 403

it could be caused by selinux, just check selinux audit logs with the command:

sudo ausearch -m avc –start recent | grep httpd or sudo ausearch -m avc –start recent | grep httpd or
sudo ausearch -m avc –start recent | grep nginx
sudo ausearch -m avc –start recent | grep nginx

selinux audit for nginx user
selinux audit for nginx user

The solution is that let selinux allow httpd user to read user content by the command

setsebool -P httpd_read_user_content 1
also remember chmod 755 for virtual host directory
#eg chmod 755 /home/longnguyen/php-workspace/

Good luck 😉

symfony2 cant access app_dev.php from distant host – cấu hình nginx (php fpm) trên centos để chạy symfony2

Sau khi tải symfony2 về từ http://symfony.com/, hoặc dùng composer để cài đặt như hướng dẫn trên trang của symfony2, về cơ bản các bạn đã có thể bắt tay vào “đép” ngay.

Một số bạn dùng nginx, php-fpm trên centos thì cấu hình có thể hơi khác hơn như sau

server {

server_name symfony2.local;

root /usr/share/nginx/html; # cái này tùy thuộc vào nơi bạn để sourcecode

index app_dev.php; #development thì nên để app_dev.php, production thì chỉnh lại app.php

try_files $uri $uri/ /app_dev.php?$query_string;

location ~ ^/(app_dev|app_test.php|app)\.php(/|$) {

include /etc/nginx/fastcgi_params;

fastcgi_pass 127.0.0.1:9000;

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

}

}

Các bạn lưu nội dung trên vào file /etc/nginx/conf.d/symfony.conf, sau đó restart lại nginx

Các bạn truy cập theo địa chỉ symfony2.local/http://localhost/symfony/web/app_dev.php –> TADA nếu suốn sẻ nó sẽ hiển thị ra hình thế này

symfony2-welcome

Trong trường hợp bị lỗi Cant access app_dev.php from distant host khi bạn môi trường dev của bạn đặt ở máy ảo, bạn access từ máy host thì nó sẽ bị lỗi trên. Để fix lỗi này chỉ cần vào chỉnh file app_dev.php comment dòng sau

//if (isset($_SERVER[‘HTTP_CLIENT_IP’])

// || isset($_SERVER[‘HTTP_X_FORWARDED_FOR’])

// || !in_array(@$_SERVER[‘REMOTE_ADDR’], array(‘127.0.0.1’, ‘fe80::1’, ‘::1’))

//) {

// header(‘HTTP/1.0 403 Forbidden’);

// exit(‘You are not allowed to access this file. Check ‘.basename(__FILE__).’ for more information.’);

//}

Xong, rựa là bạn có thể bắt tay dzo đép rồi đó ;))

Refs:

1. http://ihaveabackup.net/2012/11/17/nginx-configuration-for-symfony2/

2. http://symfony.com/doc/current/cookbook/configuration/web_server_configuration.html

3. http://forum.symfony-project.org/viewtopic.php?f=23&t=41866