Nginx
windows下配置nginx1.9.x+php7开发环境
星期四, 二月 4th, 2016 | php | 没有评论
还是跑不掉在windows下配置对应的开发环境,准备:
1.下载对应的软件
nginx-1.9.10/Windows-1.9.10
PHP 7.0 (7.0.3)/php-7.0.3-nts-Win32-VC14-x86.zip
2.安装配置nginx和php
分别解压到 D:/web/nginx-1.9.10/ 和D:/web/php7/
修改php.ini-recommended文件为php.ini
打开 一堆扩展尽量打开这里示例2个
1 2 3 | extension_dir = "D:/web/php7/ext" extension=php_mysqli.dll cgi.fix_pathinfo=1 ##这个启用cgi核心关键 |
nginx.cnf 打开php支持 同时修改fastcgi_param 参数由/scripts$fastcgi_script_name; 修改为$document_root$fastcgi_script_name;
1 2 3 4 5 6 7 8 9 | # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root D:/web/www; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } |
3.编辑php的脚本 (phpinfo.php)
<?php phpinfo(); ?> |
4.启动和关闭的脚本文件
启动脚本文件 start_nginx.bat
1 2 3 4 5 6 7 8 9 10 | @echo off echo starting nginx... D: cd D:/web/nginx-1.9.10/ start nginx echo starting PHP FastCGI... D: cd D:/web/php7/ php-cgi.exe -b 127.0.0.1:9000 -c D:/web/php7/php.ini exit |
关闭脚本文件 stop_nginx.bat
1 2 3 4 5 6 | @echo off echo Stopping nginx... taskkill /F /IM nginx.exe > nul echo Stopping PHP FastCGI... taskkill /F /IM php-cgi.exe > nul exit |
搞定配置
Nginx 1.6.2 + PHP 5.5.20 + MySQL 5.6.10 在 CentOS64 下的编译安装
星期二, 一月 6th, 2015 | linux | 没有评论
实际安装可以最新Nginx1.10.11 和php5.5.38 mysq5.7
更新时间到 2017-03-01
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | 1.系统预先配置 yum install wget yum install pcre yum install openssl* yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers make yum -y install gd gd2 gd-devel gd2-devel /usr/sbin/groupadd www /usr/sbin/useradd -g www www ulimit -SHn 65535 mkdir -p /ia/data/ cd /ia/data/ wget http://ftp.exim.llorien.org/pcre/pcre-8.32.tar.gz tar -zxvf pcre-8.32.tar.gz mkdir tgz mv pcre-8.32* tgz/ mkdir installsoft cd installsoft/ wget http://nginx.org/download/nginx-1.6.2.tar.gz tar xzvf nginx-1.6.2.tar.gz cd nginx-1.6.2 ./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/ia/data/tgz/pcre-8.32 --with-http_realip_module --with-http_image_filter_module make make install /usr/local/webserver/nginx/sbin/nginx -V 2、安装 MySQL: wget http://downloads.mysql.com/archives/mysql-5.6/mysql-5.6.10-linux-glibc2.5-x86_64.tar.gz tar zxvf mysql-5.6.10-linux-glibc2.5-x86_64.tar.gz mv mysql-5.6.10-linux-glibc2.5-x86_64 /usr/local/webserver/mysql /usr/sbin/groupadd mysql /usr/sbin/useradd -g mysql mysql mkdir -p /Data/data/mysql/data yum install libaio /usr/local/webserver/mysql/scripts/mysql_install_db --basedir=/usr/local/webserver/mysql --datadir=/ia/data/mysql/data --user=mysql ##mysql 5.7更新了初始化方式会有默认密码生成 使用 --initialize-insecure 会不生成root密码否则注意看密码 /usr/local/webserver/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/webserver/mysql --datadir=/ia/data/mysql/data sed -i "s#/usr/local/mysql#/usr/local/webserver/mysql#g" /usr/local/webserver/mysql/bin/mysqld_safe GRANT ALL PRIVILEGES ON *.* TO 'ia_admin'@'localhost' IDENTIFIED BY '12345678'; GRANT ALL PRIVILEGES ON *.* TO 'ia_admin'@'127.0.0.1' IDENTIFIED BY '12345678'; GRANT ALL PRIVILEGES ON *.* TO 'ia_admin'@'%' IDENTIFIED BY '12345678'; ##忘记密码重置的配置 my.cnf 添加 #skip-grant-tables #skip-networking #后续mysql5.7登录mysql执行 ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678'; update user set authentication_string=PASSWORD("12345678") where User='root'; ##修改成功后 可以启用GRANT去新增用户,会让强制改下root密码再执行 3、安装PHP依赖库 mkdir -p /usr/local/webserver/libs/ wget http://www.ijg.org/files/jpegsrc.v9.tar.gz tar zxvf jpegsrc.v9.tar.gz cd jpeg-9/ ./configure --prefix=/usr/local/webserver/libs --enable-shared --enable-static --prefix=/usr/local/webserver/libs make make install cd ../ wget http://prdownloads.sourceforge.net/libpng/libpng-1.6.2.tar.gz tar zxvf libpng-1.6.2.tar.gz cd libpng-1.6.2/ ./configure --prefix=/usr/local/webserver/libs make make install cd ../ wget http://download.savannah.gnu.org/releases/freetype/freetype-2.4.12.tar.gz tar zxvf freetype-2.4.12.tar.gz cd freetype-2.4.12/ ./configure --prefix=/usr/local/webserver/libs make make install cd ../ wget "http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz" wget "http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz" wget "http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz" tar zxvf libmcrypt-2.5.8.tar.gz cd libmcrypt-2.5.8/ ./configure --prefix=/usr/local/webserver/libs make make install cd libltdl/ ./configure --prefix=/usr/local/webserver/libs --enable-ltdl-install make make install cd ../../ tar zxvf mhash-0.9.9.9.tar.gz cd mhash-0.9.9.9/ ./configure --prefix=/usr/local/webserver/libs make make install cd ../ vi /etc/ld.so.conf 添加: /usr/local/webserver/libs/lib 然后: ldconfig tar zxvf mcrypt-2.6.8.tar.gz cd mcrypt-2.6.8/ export LDFLAGS="-L/usr/local/webserver/libs/lib -L/usr/lib" export CFLAGS="-I/usr/local/webserver/libs/include -I/usr/include" touch malloc.h ./configure --prefix=/usr/local/webserver/libs --with-libmcrypt-prefix=/usr/local/webserver/libs make make install cd ../ 4、编译安装PHP 5.5 wget http://cl1.php.net/get/php-5.5.20.tar.gz/from/this/mirror tar zxvf php-5.5.20.tar.gz cd php-5.5.20/ export LIBS="-lm -ltermcap -lresolv" export DYLD_LIBRARY_PATH="/usr/local/webserver/mysql/lib/:/lib/:/usr/lib/:/usr/local/lib:/lib64/:/usr/lib64/:/usr/local/lib64" export LD_LIBRARY_PATH="/usr/local/webserver/mysql/lib/:/lib/:/usr/lib/:/usr/local/lib:/lib64/:/usr/lib64/:/usr/local/lib64" ln -s /usr/local/webserver/mysql/lib/libmysqlclient.so.20.3.4 /usr/local/webserver/mysql/lib/libmysqlclient_r.so ./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-mysql=/usr/local/webserver/mysql --with-mysqli=/usr/local/webserver/mysql/bin/mysql_config --with-iconv-dir --with-freetype-dir=/usr/local/webserver/libs --with-jpeg-dir=/usr/local/webserver/libs --with-png-dir=/usr/local/webserver/libs --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt=/usr/local/webserver/libs --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-opcache --with-pdo-mysql --enable-maintainer-zts make make install cp php.ini-development /usr/local/webserver/php/etc/php.ini ##生产环境推荐 cp php.ini-production /usr/local/webserver/php/etc/php.ini cd ../ ln -s /usr/local/webserver/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib 如果是5.7的mysql做软链接 ln -s /usr/local/webserver/mysql/lib/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.20 mv /usr/local/webserver/php/etc/php-fpm.conf.default /usr/local/webserver/php/etc/php-fpm.conf ##一定记得修改 php-fpm.conf 的启动组为www(把对应的nobody修改下,否则php文件无法接收) 5、编译安装PHP扩展 wget http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.gz tar zxvf autoconf-latest.tar.gz cd autoconf-2.69/ ./configure --prefix=/usr/local/webserver/libs make make install cd ../ wget http://pecl.php.net/get/memcache-2.2.7.tgz tar zxvf memcache-2.2.7.tgz cd memcache-2.2.7/ export PHP_AUTOCONF="/usr/local/webserver/libs/bin/autoconf" export PHP_AUTOHEADER="/usr/local/webserver/libs/bin/autoheader" /usr/local/webserver/php/bin/phpize ./configure --with-php-config=/usr/local/webserver/php/bin/php-config make make install cd ../ 打开 /usr/local/webserver/php/etc/php.ini 查找 ; extension_dir = "ext" 在其后增加一行: extension = "memcache.so" |
nginx域名更换重定向配置
星期日, 二月 9th, 2014 | linux | 没有评论
直接记录下配置设置
location /hscode { rewrite ^/(.*)$ http://www.365area.com/$1 permanent; access_log off; } |
遭遇nginx图片404
星期四, 十一月 14th, 2013 | linux | 没有评论
切换服务器到nginx下,遭遇到一部分图片无法显示404的错误
后查为 文件名的大写原因,统一改成小写后正常,nginx 1.2.7 版本,不知道算是bug不~
Nginx 502 Bad Gateway 自动重启shell脚本
星期三, 八月 14th, 2013 | JAVA-and-J2EE, linux, php | 2 Comments
Nginx 502 Bad Gateway 自动重启shell脚本,启动 php 和重启nginx
新建 php文件 200_ok.php 文件(这个随便,内容也随便只要是想使用curl的访问方式)
<?php echo "200"; ?> |
建立一个脚本 vi web_monitor.sh (里面还有重启tomcate 的指令,后来发现使用正常关闭shutdown 有文件后台进程相关,可以直接杀掉进程的方式 ps -ef|grep java)
内容如下:
#!/bin/bash #author:Pomelo Lee #website://www.pomelolee.com CheckUrl="//www.pomelolee.com/200_ok.php" STATUS_CODE=`curl -o /dev/null -m 10 --connect-timeout 10 -s -w %{http_code} $CheckUrl` #echo "$CheckURL Status Code:\t$STATUS_CODE" if [ "$STATUS_CODE" != "200" ]; then /usr/local/webserver/php/sbin/php-fpm stop sleep 1 /usr/local/webserver/php/sbin/php-fpm start sleep 1 pkill -9 nginx sleep 1 /usr/local/webserver/nginx/sbin/nginx #sleep 1 #/usr/local/tomcat7/bin/shutdown.sh #sleep 2 #/usr/local/tomcat7/bin/startup.sh fi |
然后是设定权限:chmod 755 /root/web_monitor.sh
运行定时程序:crontab -e
输入以下内容每隔5分钟检测一次:*/5 * * * * /root/web_monitor.sh
nginx从1.0升级到1.2.7的log_format问题
星期三, 二月 20th, 2013 | linux | 没有评论
今天看了nginx的升级到了1.2.7的系列了,自己的还停留在1.0.7版本有点心痒痒了,就升级了下:
不停机平滑升级新版文章参考: //www.pomelolee.com/646.html
通过./sbin/nginx -t 检查发现
[warn] the “log_format” directive may be used only on “http” 的警告信息
修复起来也方便:
把这个格式信息从server 里面移动到http的里面,有多个server 可以并到一起减少了配置(如果格式一样的话,算是新版本的一个优化了)
log_format access ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” $http_x_forwarded_for’;
在通过./sbin/nginx -t 检查 就都ok了
Nginx的WordPress伪静态配置
星期日, 十一月 25th, 2012 | php, wordpress | 没有评论
Nginx的apache的伪静态配置:
找到到Nginx的配置文件,默认编译后的配置文件在/usr/local/nginx/conf/nginx.conf;
Ubuntu通过包安装的配置文件位于/etc/nginx/nginx.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | location / { index index.html index.php; if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } } location ~ .*\.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; } |
注解:此配置考虑了目录下的索引文件index.html和index.php。
-f指令表示测试文件是否存在(不考虑文件和目录的区别),
!-f则表示不存在。
注意在重写url到index.html后面有个break,而重写到index.php后没有break。(可以根据自己的情况配置多个跳出操作等)
因为html文件不需要任何额外工作可以直接发送到客户端,所以重写规则在这里终止,下面就直接让nginx发送文件。
而.php文件需要进一步发送到fastcgi进程来运行,Nginx会继续判断该文件符合第二个部分location ~ .*\.php$的规则,并进行FastCGI的转发。
› Continue reading
apache,nginx反向代理出现内网ip解决方法
星期四, 二月 23rd, 2012 | JAVA-and-J2EE, linux | 没有评论
apache中设置如下反向代理后端的tomcat出现
request.getServerName();获取到的主机名称就会是localhost,解决这个
<VirtualHost *:80> ServerAdmin service@i5a6.com DocumentRoot /usr/local/apache/htdocs ServerName i5a6.com ServerAlias *.i5a6.com DirectoryIndex index.html index.html.var index.jsp ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/ ErrorLog "logs/hscode-error.log" CustomLog "logs/hscode-access.log" common </VirtualHost> |
在httpd.conf 文件中增加:
ProxyPreserveHost On 即可
对应的nginx 也有此问题解决之法:
proxy_set_header Host $host;
upstream mytomcat{ #server 127.0.0.1:8000 weight=3; #server 127.0.0.1:8001; #server 127.0.0.1:8002; server 127.0.0.1:8080; } server { listen 80; server_name i5a6.com *.i5a6.com; index index.html index.htm ; root /usr/local/data/htdocs/www; location / { # proxy_set_header Host %host; # proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://mytomcat; proxy_set_header Host $host; } |
Nginx的平滑升级小记
星期日, 七月 25th, 2010 | php | 没有评论
升级nginx的基本过程,以下是在CentOS环境下升级过程中小结得来的。
1、查看当然版本
#cd /usr/local/nginx/ #进入Nginx安装目录
# sbin/nginx -V #查看版本
nginx version: nginx/0.7.36
configure arguments: –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module #编译项
得到原来./configure 的编译项
› Continue reading
Discuz!论坛 URL 静态化的使用的不同主机的配置文件
星期四, 三月 11th, 2010 | disucz, php | 3 Comments
本文主要引自官方的文档,留在此地方便自己使用时进行翻阅,版权归discuz!官方所有;
Discuz! URL 静态化(以下简称 URL 静态化)功能可以将 Discuz! Archiver 及部分常用页面(如 主题列表页面 forumdisplay.php、主题内容页面 viewthread.php、个人资料页面 space.php、标签页面 tag.php 等)进行 URL 静态化转换,形成类似 //www.pomelolee.com/bbs/forum-2-1.html 形式的超级链接,从而使论坛内容更容易被搜索引擎挖掘,提高被收录的机率。
您可以通过 系统设置 => 全局 => 优化设置 => 搜索引擎优化 => URL静态化 来控制需要静态化的页面。
› Continue reading
Search
相关文章
热门文章
最新文章
文章分类
- ajax (10)
- algorithm-learn (3)
- Android (6)
- as (3)
- computer (85)
- Database (30)
- disucz (4)
- enterprise (1)
- erlang (2)
- flash (5)
- golang (3)
- html5 (18)
- ios (4)
- JAVA-and-J2EE (186)
- linux (143)
- mac (10)
- movie-music (11)
- pagemaker (36)
- php (50)
- spring-boot (2)
- Synology群晖 (2)
- Uncategorized (6)
- unity (1)
- webgame (15)
- wordpress (33)
- work-other (2)
- 低代码 (1)
- 体味生活 (40)
- 前端 (21)
- 大数据 (8)
- 游戏开发 (9)
- 爱上海 (19)
- 读书 (4)
- 软件 (3)