热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

安装配置Nginx并支持php

在向大家详细介绍LinuxNginx之前,首先让大家了解下LinuxNginx,然后全面介绍LinuxNginx,希望对大家有用。利用LinuxNginx架设高性能的Web环境LinuxNginx(enginex)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Linu
在向大家详细介绍Linux Nginx之前,首先让大家了解下Linux Nginx,然后全面介绍Linux Nginx,希望对大家有用。利用Linux Nginx架设高性能的Web环境 Linux Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Linux Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。
Linux Nginx 超越 Apache 的高性能和稳定性,使得国内使用Linux Nginx作为 Web 服务器的网站也越来越多,其中包括新浪博客、新浪播客、网易新闻等门户网站频道,六间房、56.com等视频分享网站,Discuz!官方论坛、水木社区等知名论坛,豆瓣、YUPOO相册、海内SNS、迅雷在线等新兴Web 2.0网站。

实验环境
Centos4.5

pcre-7.8.tar.gz正则表达式下载地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/  
nginx-0.7.26.tar下载地址:http://www.nginx.net/       
php-5.2.6.tar.bz2下载地址:http://www.php.net/releases/  
php-5.2.6-fpm-0.5.9.diff.gz  
php-fpm是为PHP打的一个FastCGI管理补丁,可以平滑变更php.ini配置而无需重启php-cgi下载地址:http://php-fpm.anight.org/  
注:PHP的版本要和fpm的版本一致mysql-5.0.67.tar.gz  
Discuz!_6.0.0_SC_UTF8.zip 

1、安装pcre
# tar -zxvf pcre-7.8.tar.gz  
# cd pcre-7.8  
# ./configure  
# make && make install 

2、安装Linux Nginx
# tar -zxvf nginx-0.7.26.tar.gz  
# cd nginx-0.7.26  
# ./configure --prefix=/usr/local/nginx  
# make && make install 
启动nginx# /usr/local/nginx/sbin/nginx  
停止nginx# kill -QUIT `cat /usr/local/nginx/logs/nginx.pid`  
重启nginxkill -HUP `cat /usr/local/nginx/logs/nginx.pid`  
添加到自启动# echo "/usr/local/nginx/sbin/nginx">>/etc/rc.local 

3、安装mysql
# tar -zxvf mysql-5.0.67.tar.gz  
# cd mysql-5.0.67  
# groupadd mysql  
# useradd -g mysql -s /sbin/nologin -M mysql  
# ./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charset=all --enable-hread-safe-client 
--enable-local-infile --with-low-memory  
# make && make install  
# cp support-files/my-medium.cnf  /etc/my.cnf  
# chown -R mysql.mysql /usr/local/mysql/  
# /usr/local/mysql/bin/mysql_install_db --user=mysql 
# chown -R root.root /usr/local/mysql/  
# chown -R mysql.mysql /usr/local/mysql/var/ 
启动数据库服务,并添加到自启动
# /usr/local/mysql/bin/mysqld_safe --user=mysql &  
#cp  support-files/mysql.server  /etc/rc.d/init.d/mysqld  
#chmod  755  /etc/rc.d/init.d/mysqld 
加入自动启动服务队列:
#chkconfig --add mysqld  
#chkconfig  --level  345  mysqld  on添加root密码  
# /usr/local/mysql/bin/mysqladmin -u root password "123456"  
测试一下:# /usr/local/mysql/bin/mysql -u root -p输入密码:123456,看能不能进入到数据库 
配置库文件搜索路径
# echo "/usr/local/mysql/lib/mysql">>/etc/ld.so.conf  
# ldconfig  
# ldconfig -v  
添加/usr/local/mysql/bin到环境变量PATH中  
#echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile  
#source /etc/profile 

4、安装PHP
这里产生的是可执行文件,和apache的不一样,和apache结合的时候产生的是动态库
# tar -jxvf php-5.2.6.tar.bz2  
# gzip -cd php-5.2.6-fpm-0.5.9.diff.gz |patch -d php-5.2.6 -p1  
# cd php-5.2.6  
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --enable-fastcgi --enable-fpm   
--with-config-file-path=/usr/local/php/etc --enable-force-cgi-redirect  
# make && make install  
# cp php.ini-recommended /usr/local/php/etc/php.ini  
# vi /usr/local/php/php-fpm.conf 
(1) name="listen_address">127.0.0.1:9000修改为 name="listen_address">IP:9000  
//本机就用默认的127.0.0.1  
(2)下面这两行去掉注释并修改                         
 name="sendmail_path">/usr/sbin/sendmail -t -i 
 name="display_errors">1 
(3) name="user">nobody   //去注释  
(4) name="group">nobody  //去注释  
(5) name="allowed_clients">127.0.0.1   //允许连接的PC,本机就用127.0.0.1 
启动php-fpm# /usr/local/php/sbin/php-fpm start添加到自启动# echo "/usr/local/php/sbin/php-fpm start">>/etc/rc.local

5、修改Linux Nginx的配置文件,支持PHP
# vi /usr/local/nginx/conf/nginx.conf  
user  nobody;  
worker_processes  8;  
pid  /usr/local/nginx/logs/nginx.pid;  
worker_rlimit_nofile 1024;  
events  
{use epoll;  
worker_connections 1024;}  
http{  
include       mime.types;  
default_type  application/octet-stream;  
server_names_hash_bucket_size 128;  
client_header_buffer_size 32k;  
large_client_header_buffers 4 32k;  
client_max_body_size 8m; 
sendfile on;  
tcp_nopush     on;  
keepalive_timeout 60;  
tcp_nodelay on;  
fastcgi_connect_timeout 300;  
fastcgi_send_timeout 300;  
fastcgi_read_timeout 300;  
fastcgi_buffer_size 64k;  
fastcgi_buffers 4 64k;  
fastcgi_busy_buffers_size 128k;  
fastcgi_temp_file_write_size 128k;  
gzip on;  
gzip_min_length  1k;  
gzip_buffers     4 16k;  
gzip_http_version 1.0;  
gzip_comp_level 2;  
gzip_types       text/plain application/x-Javascript text/css application/xml;  
gzip_vary on;  
server {  
listen       80;  
server_name  www.bbb.com;  
root   /var/www/blog;  
index  index.html index.htm index.php;  
location ~ .*\.(php|php5)?$ {  
root           html;  
fastcgi_pass   127.0.0.1:9000;      
fastcgi_index  index.php;  
fastcgi_param  SCRIPT_FILENAME  /var/www/blog$fastcgi_script_name;  
include        fastcgi_params;}  
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$  
{expires      30d;}  
location ~ .*\.(js|css)?$  
{expires      1h;}     
log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '  
'$status $body_bytes_sent "$http_referer" '  
'"$http_user_agent" $http_x_forwarded_for';  
access_log  /var/logs/access.log  access;}} 
注:server部分为PHP虚拟主机127.0.0.1:9000为fastcgi的PC,我这里用的本机/var/www/blog$fastcgi_script_name; 为PHP网页保存的目录测试配置文件:
# /usr/local/nginx/sbin/nginx -t

6、优化Linux内核参数
# vi /etc/sysctl.conf  
在末尾增加以下内容:  
net.ipv4.tcp_fin_timeout = 30 
net.ipv4.tcp_keepalive_time = 300 
net.ipv4.tcp_synCOOKIEs = 1 
net.ipv4.tcp_tw_reuse = 1 
net.ipv4.tcp_tw_recycle = 1 
net.ipv4.ip_local_port_range = 5000    65000 
使配置立即生效:# /sbin/sysctl -p。

推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • 本文介绍了在无法联网的情况下,通过下载rpm包离线安装zip和unzip的方法。详细介绍了如何搜索并下载合适的rpm包,以及如何使用rpm命令进行安装。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
author-avatar
抵制日货2502901143
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有