- 浏览: 2551276 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
nation:
你好,在部署Mesos+Spark的运行环境时,出现一个现象, ...
Spark(4)Deal with Mesos -
sillycat:
AMAZON Relatedhttps://www.godad ...
AMAZON API Gateway(2)Client Side SSL with NGINX -
sillycat:
sudo usermod -aG docker ec2-use ...
Docker and VirtualBox(1)Set up Shared Disk for Virtual Box -
sillycat:
Every Half an Hour30 * * * * /u ...
Build Home NAS(3)Data Redundancy -
sillycat:
3 List the Cron Job I Have>c ...
Build Home NAS(3)Data Redundancy
PHP(6)PHP with fpm and NGINX
1. Set Up latest PHP with Nginx
If get some problem with libtool to build some library. We should use
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool
Install the nginx, place the pcre installation package there, you may need that.
Install the PHP with factCGI and work with nginx
http://sillycat.iteye.com/blog/2078154
http://sillycat.iteye.com/blog/2149513
PHP-FPM VS FastCGI
mod_php, it is a build-in module under apache. Apache HTTP server can support PHP.
FastCGI, interface between PHP and HTTP server. mod_fastcgi is a module under apache support FastCGI protocol. We can separate the PHP and Web Server.
PHP-FPM powerful, similar to span-cgi, support remote FastCGI. (FastCGI Process Manager)
Download the latest package
> wget http://ar2.php.net/distributions/php-5.6.10.tar.gz
Unzip that and prepare the tools we need.
> ./configure --prefix=/home/carl/tool/php-5.6.10 --with-openssl --with-iconv-dir=/usr/lib --with-curl=/opt/local/include/curl --with-mysql --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm
Error Message:
configure: error: Cannot find OpenSSL's libraries
Solution:
http://mac-dev-env.patrickbougie.com/openssl/
> wget http://www.openssl.org/source/openssl-1.0.2c.tar.gz
Unzip and try to install that
> ./configure darwin64-x86_64-cc --prefix=/Users/carl/tool/openssl-1.0.2c
make and install them
> ./configure --prefix=/Users/carl/tool/php-5.6.10 --with-openssl --with-iconv-dir=/usr/lib --with-curl=/opt/local/include/curl --with-mysql --enable-fpm --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-mysqli
Make & Install that, php is adding to the path.
> php --version
PHP 5.6.10 (cli) (built: Jun 29 2015 17:35:04)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
Command to restart the nginx
> sudo sbin/nginx -s reload
Check configuration
> sudo sbin/php-fpm -t
Command to restart the php-fpm
> sudo sbin/php-fpm
Check the Permission
> sudo chown -R root:nobody /opt/nginx/html/
> sudo chmod g+w /opt/nginx/htm
Change the configuration on php-fpm, the configuration file is
/opt/php/etc/php-fpm.conf
pid = run/php-fpm.pid
error_log = log/php-fpm.log
user = nobody
group = nobody
;listen = 127.0.0.1:9000
listen = var/run/php5-fpm.sock
Another configuration file
/opt/php/etc/php.ini
Error Message:
sudo sbin/nginx
nginx: [warn] 1024 worker_connections exceed open file resource limit: 256
Solution:
Check the Limit
> ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 256
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 709
virtual memory (kbytes, -v) unlimited
Change the limit
> ulimit -n 1024
Then we can start the php-fpm
>sudo sbin/php-fpm
Make sure they are running
> ps -ef | grep fpm
0 98821 1 0 Tue11AM ?? 0:01.34 sbin/php-fpm
-2 98822 98821 0 Tue11AM ?? 0:00.00 sbin/php-fpm
-2 98823 98821 0 Tue11AM ?? 0:00.00 sbin/php-fpm
501 2991 5692 0 2:37PM ttys006 0:00.01 grep fpm
Configuration on NGINX, the configuration file will be /opt/nginx/conf/nginx.conf
location ~ \.php$ {
#root html;
#fastcgi_pass 127.0.0.1:9000;
#fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
#include fastcgi_params;
# with php5-fpm
fastcgi_keep_conn on;
try_files $uri =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_hide_header X-Powered-By;
# fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/opt/php/var/run/php5-fpm.sock;
}
Place a very simple and hello world page /opt/nginx/html/info.php
> cat info.php
<?php
phpinfo();
?>
Visit that page with URL
http://localhost/info.php
2. Recall PHP Knowledge
todo...
3. MySQLi
todo...
References:
http://sillycat.iteye.com/blog/2194084
http://sillycat.iteye.com/blog/2066063
http://sillycat.iteye.com/blog/1543227
http://sillycat.iteye.com/blog/769110
http://sillycat.iteye.com/blog/2149513
http://sillycat.iteye.com/blog/2078154
build PHP with fastcgi
https://www.howtoforge.com/how-to-build-php-5.6-fpm-fastcgi-with-zend-opcache-and-apcu-for-ispconfig-3-on-debian-7-wheezy
https://www.howtoforge.com/installing-nginx-with-php5-and-php-fpm-and-mysql-support-lemp-on-debian-wheezy
https://www.zybuluo.com/phper/note/50231
https://www.zybuluo.com/phper/note/50231
PHP-FPM
http://php-fpm.org/
1. Set Up latest PHP with Nginx
If get some problem with libtool to build some library. We should use
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool
Install the nginx, place the pcre installation package there, you may need that.
Install the PHP with factCGI and work with nginx
http://sillycat.iteye.com/blog/2078154
http://sillycat.iteye.com/blog/2149513
PHP-FPM VS FastCGI
mod_php, it is a build-in module under apache. Apache HTTP server can support PHP.
FastCGI, interface between PHP and HTTP server. mod_fastcgi is a module under apache support FastCGI protocol. We can separate the PHP and Web Server.
PHP-FPM powerful, similar to span-cgi, support remote FastCGI. (FastCGI Process Manager)
Download the latest package
> wget http://ar2.php.net/distributions/php-5.6.10.tar.gz
Unzip that and prepare the tools we need.
> ./configure --prefix=/home/carl/tool/php-5.6.10 --with-openssl --with-iconv-dir=/usr/lib --with-curl=/opt/local/include/curl --with-mysql --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm
Error Message:
configure: error: Cannot find OpenSSL's libraries
Solution:
http://mac-dev-env.patrickbougie.com/openssl/
> wget http://www.openssl.org/source/openssl-1.0.2c.tar.gz
Unzip and try to install that
> ./configure darwin64-x86_64-cc --prefix=/Users/carl/tool/openssl-1.0.2c
make and install them
> ./configure --prefix=/Users/carl/tool/php-5.6.10 --with-openssl --with-iconv-dir=/usr/lib --with-curl=/opt/local/include/curl --with-mysql --enable-fpm --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-mysqli
Make & Install that, php is adding to the path.
> php --version
PHP 5.6.10 (cli) (built: Jun 29 2015 17:35:04)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
Command to restart the nginx
> sudo sbin/nginx -s reload
Check configuration
> sudo sbin/php-fpm -t
Command to restart the php-fpm
> sudo sbin/php-fpm
Check the Permission
> sudo chown -R root:nobody /opt/nginx/html/
> sudo chmod g+w /opt/nginx/htm
Change the configuration on php-fpm, the configuration file is
/opt/php/etc/php-fpm.conf
pid = run/php-fpm.pid
error_log = log/php-fpm.log
user = nobody
group = nobody
;listen = 127.0.0.1:9000
listen = var/run/php5-fpm.sock
Another configuration file
/opt/php/etc/php.ini
Error Message:
sudo sbin/nginx
nginx: [warn] 1024 worker_connections exceed open file resource limit: 256
Solution:
Check the Limit
> ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 256
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 709
virtual memory (kbytes, -v) unlimited
Change the limit
> ulimit -n 1024
Then we can start the php-fpm
>sudo sbin/php-fpm
Make sure they are running
> ps -ef | grep fpm
0 98821 1 0 Tue11AM ?? 0:01.34 sbin/php-fpm
-2 98822 98821 0 Tue11AM ?? 0:00.00 sbin/php-fpm
-2 98823 98821 0 Tue11AM ?? 0:00.00 sbin/php-fpm
501 2991 5692 0 2:37PM ttys006 0:00.01 grep fpm
Configuration on NGINX, the configuration file will be /opt/nginx/conf/nginx.conf
location ~ \.php$ {
#root html;
#fastcgi_pass 127.0.0.1:9000;
#fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
#include fastcgi_params;
# with php5-fpm
fastcgi_keep_conn on;
try_files $uri =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors on;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_hide_header X-Powered-By;
# fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/opt/php/var/run/php5-fpm.sock;
}
Place a very simple and hello world page /opt/nginx/html/info.php
> cat info.php
<?php
phpinfo();
?>
Visit that page with URL
http://localhost/info.php
2. Recall PHP Knowledge
todo...
3. MySQLi
todo...
References:
http://sillycat.iteye.com/blog/2194084
http://sillycat.iteye.com/blog/2066063
http://sillycat.iteye.com/blog/1543227
http://sillycat.iteye.com/blog/769110
http://sillycat.iteye.com/blog/2149513
http://sillycat.iteye.com/blog/2078154
build PHP with fastcgi
https://www.howtoforge.com/how-to-build-php-5.6-fpm-fastcgi-with-zend-opcache-and-apcu-for-ispconfig-3-on-debian-7-wheezy
https://www.howtoforge.com/installing-nginx-with-php5-and-php-fpm-and-mysql-support-lemp-on-debian-wheezy
https://www.zybuluo.com/phper/note/50231
https://www.zybuluo.com/phper/note/50231
PHP-FPM
http://php-fpm.org/
发表评论
-
PHP Command Line Tool
2019-08-17 05:06 396PHP Command Line Tool Recently ... -
Code SonarQube 2019(2)PostgreSQL as Database
2019-07-24 05:32 426Code SonarQube 2019(2)PostgreSQ ... -
Code SonarQube 2019(1)Installation with default H2
2019-07-23 10:42 772Code SonarQube 2019(1)Installat ... -
Auth Solution(3)JWT in Java and PHP Sample
2019-05-03 07:33 315Auth Solution(3)JWT in Java and ... -
Flarum BBS System(2)Docker the BBS
2018-11-20 03:31 658Flarum BBS System(2)Docker the ... -
Flarum BBS System(1)Installation and Introduction
2018-11-18 14:29 507Flarum BBS System(1)Installatio ... -
Grav CMS System(5)Multiple Domains and Certs
2018-11-15 01:48 537Grav CMS System(5)Multiple Doma ... -
Grav CMS System(4)Multiple Domain Sites in HAProxy and HTTPS
2018-11-14 21:33 582Grav CMS System(4)Multiple Doma ... -
Grav CMS System(3)Docker Nginx and PHP
2018-11-14 00:21 462Grav CMS System(3)Docker Nginx ... -
Grav CMS System(1)Install PHP7 on MAC
2018-10-23 21:53 637Grav CMS System(1)Install PHP7 ... -
Laravel PHP Framework(1)Introduction and Installation
2018-08-22 02:47 988Laravel PHP Framework(1)Introdu ... -
JSON Log in PHP and Cloud Watch(1)JSON Format in PHP
2017-12-30 05:31 605JSON Log in PHP and Cloud Watch ... -
PHPRedis Library
2017-03-30 00:32 680PHPRedis Library We can instal ... -
PHP Call Wget Command
2017-03-24 23:35 672PHP Call Wget Command In my PH ... -
PHP XML Writer
2017-03-10 03:59 1458PHP XML Writer PHP XML writer ... -
PHP Redis Client and Cluster
2017-02-16 03:34 653PHP Redis Client and Cluster S ... -
PHP Redis Client and Replica
2017-02-16 01:11 599PHP Redis Client and Replica W ... -
PHP HTTP Library and Error Handling
2017-02-11 06:19 656PHP HTTP Library and Error Hand ... -
PHP ENV and HTTP Extension
2017-01-12 01:04 798PHP ENV and HTTP Extension We ... -
PHP Connect Redis Driver
2016-11-23 00:29 583PHP Connect Redis Driver I was ...
相关推荐
4. **编译安装PHP**:配置`PHP`的编译选项,包括`--with-php-fpm`以启用FastCGI模式,同时添加`--with-openssl`和`--with-zlib`。完成编译后,同样执行`make`和`make install`。 5. **配置Nginx**:编辑`nginx.conf...
【Nginx + PHP-FPM + APC 绝妙组合详解】 在互联网服务领域,Nginx、PHP-FPM(PHP FastCGI Process Manager)和 Alternative PHP Cache (APC) 的结合已经成为一种高效的Web服务器配置模式,尤其适用于高流量网站。...
3. 调整Nginx和PHP-FPM的配置参数以优化性能。 通过以上步骤,你就可以搭建起一个运行PHP应用的Nginx服务器。然而,实际生产环境中,还需要考虑更多的因素,如日志管理、性能监控、安全策略等。在不断学习和实践中...
搭建一个高效的Web服务器环境,尤其是对于处理PHP应用来说,Nginx与PHP-FPM的组合是常见的选择。本文将详细讲解如何安装配置php-fpm,以及如何与Nginx配合,构建一个生产级别的PHP环境。 首先,理解php-fpm的核心...
- 配置编译选项,包括Nginx模块支持:`./configure --prefix=/usr/local/php --with-config-file-path=/etc/php --with-config-file-scan-dir=/etc/php/conf.d --enable-fpm --with-fpm-user=nginx --with-fpm-...
libxml-dir --enable-xml --enable-sockets --with-mcrypt --with-bz2 --with-config-file-path=/etc/php/php.ini --with-config-file-scan-dir=/etc/php.d/ --enable-fpm ``` 完成配置后,进行编译、测试和安装: ...
在Linux环境下搭建PHP开发环境并配置Nginx支持PHP-FPM模块是Web开发者常见的任务之一。本文将详细介绍如何在CentOS 7.2上完成这个过程。 首先,你需要访问PHP官方网站(http://php.net/)下载最新版本的PHP源码包,...
2. **配置**:执行`./configure`命令,选择需要的扩展和配置选项,如`--with-nginx`表示与Nginx集成。 3. **编译与安装**:同Nginx一样,使用`make`和`make install`进行编译和安装。 4. **PHP-FPM**:对于与Nginx...
标题 "Installing Nginx With PHP5 And MySQL Support On Debian Squeeze" 涉及到的是在Debian Squeeze操作系统上安装Nginx web服务器、PHP5脚本语言支持以及MySQL数据库的过程。这是一个基础的LEMP(Linux、Nginx、...
6. **启动PHP-FPM**:启动PHP-FPM服务,使其能够处理来自Nginx的请求。 7. **配置Nginx以与PHP配合**:在Nginx的配置文件中,添加处理PHP请求的location块,比如: ``` location ~ \.php$ { fastcgi_pass ...
### Nginx PHP配置知识点...- 性能调优方面,可根据服务器硬件和负载情况调整 Nginx 和 PHP-FPM 的配置。 通过上述步骤,可以完成 Nginx 和 PHP 的基本安装与配置。这将为后续 Web 应用的开发和部署打下坚实的基础。
4. 配置编译选项,包括指定安装路径、启用PHP-FPM、CLI以及各种扩展:`./configure --prefix=/usr/local/php --with-config-file-path=/etc --enable-fpm --enable-cli --enable-pcntl --enable-sockets --enable-...
6. **启动服务**:启动Nginx和PHP-FPM服务。Nginx通常用`nginx -t`检查配置无误后,用`nginx`或`systemctl start nginx`启动;PHP-FPM则可能是`php-fpm`或`systemctl start php-fpm`。 7. **测试与优化**:通过访问...
在Linux系统中搭建一个基于MySQL、PHP和Nginx的环境是常见的Web开发配置,这种组合通常被称为LAMP(Linux, Apache, MySQL, PHP)架构,但在本例中使用的是Nginx代替Apache,所以是LNMP(Linux, Nginx, MySQL, PHP)...
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/etc/php.d --with-fpm-user=nginx --with-fpm-group=nginx --enable-fpm --with-...
在配置阶段,需确保开启FPM支持,通常通过`--with-fpm`选项来指定。完成编译后,进行必要的系统环境变量设置,以便正确启动和管理PHP FPM服务。 2. **FPM配置文件**:FPM的配置文件通常位于`/etc/php-fpm.conf`或`/...
### 构建Nginx+PHP(Fastcgi)+MySQL+Memcache高性能Web服务器 #### 一、概述 本文档旨在详细介绍如何构建一个基于Nginx、PHP(Fastcgi)、MySQL以及Memcache的高性能Web服务器架构(简称LEMP+...-group=nginx --with-...