nginx + php + centos 6.3
2014年2月7日 22:34:52
PHP 5.5.9 http://cn2.php.net/distributions/php-5.5.9.tar.bz2
nginx 1.5.10 http://nginx.org/download/nginx-1.5.10.tar.gz
-------------------------------------------
php:
gd
- yum -y install gd-devel
php
- ./configure --prefix=/usr/local/web/php --with-config-file-path=/usr/local/web/php/etc --enable-fpm --enable-mbstring --with-gd --enable-sockets --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd
nginx:
- location / {
- root /home/web/html;
- fastcgi_pass 127.0.0.1:;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root/index.php;
- include fastcgi_params;
- }
注:
1.第2行,指定网站的根目录,就是指定第5行的$document_root值(如果location层没有这条指令,那么就使用外层的root指令值)
2.第3行,将所有请求转发给守护127.0.0.1:9000的进程
3.第5行,指定转发时将请求转发给哪个文件进行处理,这里 $document_root/index.php => /home/web/html/index.php
4.第6行,附带一些其它参数一并转发
出现 "file not found"问题:
root 指令值最好也定义一份在server块中,这样下文中如果用到$document_root时,就会自动定义为这个值
fastcgi_param 指令值不要写死,写成
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
参考: http://www.nginx.cn/562.html
----------------------------------
编译安装nginx时,问题解决:
如果单独安装pcre,那么./configure时要用到 --with-pcre=/pcre/sourcecode/path (pcre的源码解压缩后的文件夹路径)
不独立安装pcre的话, 只用 yum -y install pcre pcre-devel
ps, pcre是perl的正则库, nginx rewrite 的时候要用到正则表达式
安装完成后,会自动在/etc/init.d下生成启动脚本,文件名字为nginx,使用时可以serviec nginx start/stop.....
----------------------------------
2014年3月2日 14:03:37
php编译时的MYSQL相关配置(如果使用mysqlnd驱动,注意配置PHP.ini指明MYSQL和PHP交流用的socket文件路径,对MYSQL来说PHP也是一个客户端,客户端和MYSQL通信都是用socket文件通信的)
- [root@ddd php-5.5.]# ./configure --help | grep mysql
- --with-mysql=DIR Include MySQL support. DIR is the MySQL base
- mysqlnd the MySQL native driver will be used
- --with-mysql-sock=SOCKPATH
- --with-mysqli=FILE Include MySQLi support. FILE is the path
- to mysql_config. If no value or mysqlnd is passed
- --enable-embedded-mysqli
- --with-pdo-mysql=DIR PDO: MySQL support. DIR is the MySQL base directory
- If no value or mysqlnd is passed as DIR, the
- --enable-mysqlnd Enable mysqlnd explicitly, will be done implicitly
- --disable-mysqlnd-compression-support
- Disable support for the MySQL compressed protocol in mysqlnd
- --with-zlib-dir=DIR mysqlnd: Set the path to libz install prefix
-----------------------------------
php-fpm
启动php-fpm后,它会自动加载php的配置文件(没有也不报错)
下边是将php-fpm安装成系统服务所使用的脚本
- #! /bin/sh
- ### BEGIN INIT INFO
- # Provides: php-fpm
- # Required-Start: $remote_fs $network
- # Required-Stop: $remote_fs $network
- # Default-Start:
- # Default-Stop:
- # Short-Description: starts php-fpm
- # Description: starts the PHP FastCGI Process Manager daemon
- ### END INIT INFO
- prefix=/usr/local/web/php #编译PHP时的--prefix
- exec_prefix=${prefix}
- php_fpm_BIN=${exec_prefix}/sbin/php-fpm
- php_fpm_CONF=${prefix}/etc/php-fpm.conf
- php_fpm_PID=${prefix}/var/run/php-fpm.pid #要和php-fpm配置文件中的一致,用来找到当前进程号,然后结束它
- php_opts="--fpm-config $php_fpm_CONF"
- wait_for_pid () {
- try=
- while test $try -lt ; do
- case "$1" in
- 'created')
- if [ -f "$2" ] ; then
- try=''
- break
- fi
- ;;
- 'removed')
- if [ ! -f "$2" ] ; then
- try=''
- break
- fi
- ;;
- esac
- echo -n .
- try=`expr $try + `
- sleep
- done
- }
- case "$1" in
- start)
- echo -n "Starting php-fpm "
- $php_fpm_BIN $php_opts
- if [ "$?" != ] ; then
- echo " failed"
- exit
- fi
- wait_for_pid created $php_fpm_PID
- if [ -n "$try" ] ; then
- echo " failed"
- exit
- else
- echo " done"
- fi
- ;;
- stop)
- echo -n "Gracefully shutting down php-fpm "
- if [ ! -r $php_fpm_PID ] ; then
- echo "warning, no pid file found - php-fpm is not running ?"
- exit
- fi
- kill -QUIT `cat $php_fpm_PID`
- wait_for_pid removed $php_fpm_PID
- if [ -n "$try" ] ; then
- echo " failed. Use force-exit"
- exit
- else
- echo " done"
- fi
- ;;
- force-quit)
- echo -n "Terminating php-fpm "
- if [ ! -r $php_fpm_PID ] ; then
- echo "warning, no pid file found - php-fpm is not running ?"
- exit
- fi
- kill -TERM `cat $php_fpm_PID`
- wait_for_pid removed $php_fpm_PID
- if [ -n "$try" ] ; then
- echo " failed"
- exit
- else
- echo " done"
- fi
- ;;
- restart)
- $ stop
- $ start
- ;;
- reload)
- echo -n "Reload service php-fpm "
- if [ ! -r $php_fpm_PID ] ; then
- echo "warning, no pid file found - php-fpm is not running ?"
- exit
- fi
- kill -USR2 `cat $php_fpm_PID`
- echo " done"
- ;;
- *)
- echo "Usage: $0 {start|stop|force-quit|restart|reload}"
- exit
- ;;
- esac
注意,
1.第一行和第二行之间不要有空行,否则会提示错误(有的话,行首要用#注释)
- [root@AY1402041644126082e5Z sbin]# ./php-fpmd start
- -bash: ./php-fpmd: /bin/sh^M: bad interpreter: No such file or directory
2.修改第12行到17行的相应文件路径使之和配置文件的配置相对应
3.如果启动时端口被占用: netstat -apn | grep 9000 找到它,用killall kill -9 结束进程,再重新启动
4.php安装的所有路径中没有php.ini也照样可以执行php_info();当然,获取有些需要的配置时会出警告(如时区,mysql的socket路径等),所以PHP.ini和php-fpm.conf是相互配合的,缺一不可
5. 另一个bash(mac可用)
- #!/bin/sh
- #=======================================================================================
- # php-fpm - this script start and stop the php-fpm daemon
- #
- # chkconfig on
- # description: php-fpm is a FastCGI web server.
- # processname: php-fpm
- # config: /usr/local/php/etc/php-fpm.conf
- # pidfile: /var/run/php-fpm.pid
- #=======================================================================================
- PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
- BINFILE="/usr/sbin/php-fpm"
- CFGFILE="/etc/php-fpm.conf"
- PIDFILE="/var/run/php-fpm.pid"
- LOCKFILE="/var/lock/php-fpm.lock"
- INIFILE="/etc/php.ini"
- RETVAL=
- start() {
- [[ -x $BINFILE ]] || exit
- [[ -f $CFGFILE ]] || exit
- $BINFILE -t >/dev/null >&
- if [[ $? -ne ]]; then
- echo "The php-fpm configure has error."
- return
- fi
- echo "Starting php-fpm......"
- sudo $BINFILE -c ${INIFILE} -y $CFGFILE -g ${PIDFILE}
- RETVAL=$?
- echo "ok~"
- [[ $RETVAL -eq ]] && touch $LOCKFILE
- return $RETVAL
- }
- stop() {
- echo "Shutting down php-fpm......"
- if [[ -f $PIDFILE ]]; then
- kill - `cat ${PIDFILE}`
- else
- kill - `ps aux | grep php-fpm | awk '/master/{print $2}'`
- fi
- RETVAL=$?
- echo "ok~"
- [[ $RETVAL -eq ]] && sudo rm -f $LOCKFILE $PIDFILE
- return $RETVAL
- }
- restart() {
- stop
- sleep
- start
- sleep
- RETVAL=$?
- return $RETVAL
- }
- reload() {
- echo -n $"Reloading php-fpm......"
- if [[ -f $PIDFILE ]]; then
- kill -USR2 `cat ${PIDFILE}`
- else
- kill -USR2 `ps aux | grep php-fpm | awk '/master/{print $2}'`
- fi
- RETVAL=$?
- echo "ok~"
- return $RETVAL
- }
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart)
- restart
- ;;
- reload)
- reload
- ;;
- *)
- echo "Usage: service php-fpm {start|stop|restart|reload}"
- RETVAL=
- esac
- exit $RETVAL
2016年4月18日 09:46:55 星期一
PHP7默认安装的模块: (在./configure时, 只配置--prefix=xxx参数, 其它--with, --enable都不写的情况下)
Core
ctype
date
dom
fileinfo
filter
hash
iconv
json
libxml
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
2019-8-23 10:42:59 星期五
php 7.3.8 编译参数
因为需要使用php自动生成一些分享图片, 所以安装了图片相关的库
- yum install -y libwebp libwebp-devel
- ./configure --prefix=/usr/local/web/php-7.3.8 --enable-fpm --with-fpm-user=nginx --with-fpm-group=webserver --with-config-file-path=/usr/local/web/php-7.3.8/etc --enable-mbstring --enable-bcmath --enable-mysqlnd --enable-calendar --enable-sockets --enable-exif --with-mysqli=mysqlnd --with-curl --with-libxml-dir --with-openssl --with-zlib --with-bz2 --with-gd --with-webp-dir --with-jpeg-dir --with-png-dir --with-freetype-dir
安装时,可能会提示内存不够, 通过给Linux创建swap交换空间来解决
- dd if=/dev/zero of=/swap bs=1024 count=2048000
- mkswap /swap
- swapon /swap
参考:
https://www.cnblogs.com/jikexianfeng/p/6103500.html
https://www.cnblogs.com/luoahong/articles/9131870.html
https://blog.csdn.net/wulantian/article/details/36184943
nginx + php + centos 6.3的更多相关文章
- Docker 实战(二)——centos7镜像安装nginx,将安装nginx的centos容器生成新的镜像,并导出
Docker centos7镜像安装nginx 1.安装docker 使用yum安装docker不再重复:见 Linux常用命令 2.pull centos 1)在docker仓库中搜索centos ...
- Nginx 安装(CentOS )非yum安装
Nginx 安装(CentOS ) 一.安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-d ...
- How To Install Nginx on CentOS 7(转)
How To Install Nginx on CentOS 7 PostedJuly 22, 2014 427.4kviews NGINX CENTOS About Nginx Nginx is a ...
- ASP.NET Core Docker jexus nginx部署-CentOS实践版
本文用图文的方式记录了我自己搭建centos+asp.net core + docker + jexus + nginx的整个过程,希望对有同样需求的朋友有一定的参考作用. 本文主要内容如下: cen ...
- nginx在centos & ubuntu上的安装
安装Centos 添加当前账号加入sudoers,具备sudo功能 安装编辑器vim Yum install vim Su root Cd cp /etc/sudoers /etc/sudoers[d ...
- Install Nginx on CentOS 7
To set up the yum repository for RHEL/CentOS, create the file named /etc/yum.repos.d/nginx.repo with ...
- nginx的centos和rhel的yum配置安装
Official Red Hat/CentOS packages To add NGINX yum repository, create a file named /etc/yum.repos.d/n ...
- 使用nginx代理centos yum 源
我们在安装centos 服务器时,可能会有以下情况: 局域网内有若干台服务器,但是只有一台服务器可以连接外网,其余服务器都不可以连接外网,但通过局域网与外网机器联通. 那么我们再使用 yum 安装软件 ...
- nginx在centos下的安装
第一步:打开浏览器下载,再上传到centOS系统中 http://nginx.org/download/ 或者在 centOS系统输入: wget http://nginx.org/download/ ...
- 安装Nginx到CentOS(YUM)
运行环境 系统版本:CentOS Linux release 7.3.1611 软件版本:nginx-1.12.2 硬件要求:无 安装过程 1.配置YUM源 [root@localhost ~]# r ...
随机推荐
- django学习--2 模板
Django 模板 在上一章节中我们使用 django.http.HttpResponse() 来输出 "Hello World!".该方式将数据与视图混合在一起,不符合 Djan ...
- [知乎]BAT占线
黑色自有,蓝色全资收够,红色入股. https://www.zhihu.com/question/304396738/answer/547766603
- 随web应用启动而自启动的后台线程
当前遇到一个需求: 需要在web应用启动的时候就启动一个线程定时的来做某项工作. 有两种解决方法: 1.增加一个监听器Listener来实现相关功能. 2.增加一个随项目启动的servlet来实现相关 ...
- Spring之AOP实现原理
- 模拟APP存储空间、内存不足情况下软件正常运行
1.进行临界测试,手机盘空间存满的条件下应用会有何表现: 方法一:adb shell dd if=/dev/zero of=/mnt/sdcard/bigfile 方法二:哆啦A工具生成文件 2.内存 ...
- 如何把EntityList转换成DataSet
public static DataSet ToDataSet<TSource>(this IList<TSource> list) { Type elementType = ...
- 学习Spring Boot:(十六)使用Shiro与JWT 实现认证服务
前言 需要把Web应用做成无状态的,即服务器端无状态,就是说服务器端不会存储像会话这种东西,而是每次请求时access_token进行资源访问.这里我们将使用 JWT 1,基于散列的消息认证码,使用一 ...
- 【模板】MST(Prim)
代码如下 #include <bits/stdc++.h> using namespace std; const int maxv=2e5+10; const int maxe=5e5+1 ...
- Stanford机器学习笔记-9. 聚类(K-means算法)
9. Clustering Content 9. Clustering 9.1 Supervised Learning and Unsupervised Learning 9.2 K-means al ...
- 分布式系统登录功能拦截器的实现以及cookie的共享问题(利用cookie实现session在分布式系统的共享)
当我们的网站采用分布式部署系统时,每个子系统拥有自己独立的session,如果不实现session共享,当用户切换系统访问的时候,会不停的提示登录,这对于用户体验是非常不好的.因此对于多个子系统的的访 ...