nginx+mysql+php
根据生产环境安装操作系统(centos 6.0 64位系统),安装完成后,使用Xshell通过ssh协议连接服务器。
ssh 用户名@IP+回车+输入密码后登录系统。
#mkdir -p /home/tools //创建软件存储目录
#cd /home/tools //进入软件存储目录
将软件包上传到/home/tools
安装nginx:
#/usr/sbin/groupadd www //创建php用户
#/usr/sbin/useradd -g www www //创建用户组,并且把php用户加入到用户组
#tar -zxvf pcre-8.10.tar.gz //解压pcre,安装pcre是为了让nginx支持HTTP Rewrite模块
#cd pcre-8.10 //进入pcre的解压目录
#./configure //编译PCRE
#make && make install //安装pcre
#cd .. //进入软件存储目录
#wget http://zlib.net/zlib-1.2.7.tar.gz //下载zlib
#yum -y install wget //安装wget
#wget http://zlib.net/zlib-1.2.7.tar.gz //下载zlib
#tar -zxvf zlib-1.2.7.tar.gz //解压zlib
#cd zlib-1.2.7 //进入zlib解压目录
#./configure //编译zlib
#make && make install //安装zlib
#yum -y install openssl //安装openssl,支持https
#rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm //安装第三方软件源
#cd .. //进入软件安装目录
#tar -zxvf nginx-1.2.6.tar.gz //解压nginx。
#cd nginx-1.2.6 //进入nginx的解压目录
#./configure --user=www --group=www --with-http_stub_status_module --with-http_gzip_static_module --prefix=/usr/local/nginx //编译nginx
#make && make install //安装nginx
#/usr/local/nginx/sbin/nginx //启动nginx
#ps -ef |grep nginx //查询nginx是否启动
有如下显示为nginx已经安装完成并成功启动。
root 8573 1 0 20:32 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody 8574 8573 0 20:32 ? 00:00:00 nginx: worker process
创建Nginx日志目录
#mkdir -p /home/logs //创建Nginx日志目录
#chmod +w /home/logs //设置nginx日志目录可写
#chown -R www:www /home/logs //将php用户对nginx日志目录可写。
每创建一个域名,则在该目录下创建一个以域名命令的文件夹用于保存日志
修改Nginx配置文件
#vim /usr/local/nginx/conf/nginx.conf //编辑nginx的配置文件,在编辑前需要备份之前的配置文件
user nobody nobody; //指定nginx运行用户
worker_processes 8; //配置nginx的进程
error_log /home/logs/nginx-log/error.log crit;//nginx运行日志
pid /usr/local/nginx/logs/nginx.pid; //nginx进程存储目录
worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 65535;
}
http {
include mime.types;
default_type application/octet-stream;//如果想在浏览器中访问json的内容,将此处修改为:test/html
charset utf-8;
#log_format access '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent $http_x_forwarded_for';
log_format access '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" host';
server_names_hash_bucket_size 128;
client_header_buffer_size 4k;
large_client_header_buffers 4 4k;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
keepalive_timeout 60;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
#gzip_types text/plain application/x-javascript text/css application/xml;
gzip_types text/plain application/x-javascript text/css;
gzip_vary on;
server {
listen 80 default;
return 200;
}
server {
listen 80;
server_name www.zhezi.com;
root /home/app/www.zhezi.com/v1.6.2.2313/;
location / {
index index.php index.html index.htm;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location /v1.6/ {
alias /home/app/www.zhezi.com/v1.6.2.2313/;
index index.php;
}
location ~ ^/v1.6/(.*\.php)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/app/www.zhezi.com/v1.6.2.2313/$1;
include fastcgi_params;
}
location /yd/ {
alias /home/app/www.zhezi.com/yd/;
#autoindex on;
}
access_log /home/logs/www.zhezi.com/access.log access;
error_log /home/logs/www.zhezi.com/error.log info;
}
}
编写每天定时切割Nginx日志的脚本
#cd /home
#mkdir crontab
#cd crontab
#touch cut_nginx_log.sh
#vim /home/crontab/cut_nginx_log.sh
#!/bin/bash
# This script run at 00:10
# The Nginx logs path
logs_path="/home/logs/www.zhezi.com/"
mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat /home/nginx/logs/nginx.pid`
#chmod +x /home/crontab/cut_nginx_log.sh
#chown www:www /home/crontab/cut_nginx_log.sh
设置crontab,每天凌晨00:10切割nginx访问日志
#crontab -e
00 10 * * * /bin/bash /home/crontab/cut_nginx_log.sh
保存计划任务
配置开机自动启动Nginx + PHP
#vim /etc/rc.d/rc.local
ulimit -SHn 65535
/usr/local/php/sbin/php-fpm start
/usr/local/nginx/sbin/nginx
检查nginx配置文件是否正确
#/usr/local/nginx/sbin/nginx -t //检查nginx配置文件是否正确
#/usr/local/nginx/sbin/nginx -s reload //平滑重启
mysql 安装:
#/usr/sbin/groupadd mysql //创建mysql用户
#/usr/sbin/useradd -g mysql mysql //创建mysql用户组,并且把mysql用户加入到这个组中
#yum -y install mysql-devel //安装mysql客户端
#wget http://www.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.96.tar.gz/from/http://cdn.mysql.com/ //下载mysql
#yum -y install libtermcap-devel //安装libtermcap-devel
#tar -zxvf mysql-5.0.96.tar.gz //解压mysql
#cd mysql-5.0.96 //进入mysql的解压目录
#./configure --prefix=/usr/local/mysql '--with-extra-charsets=all' '--enable-assembler' --with-charset=utf8 //编译mysql
//210.14.154.7编译参数如下
./configure --prefix=/usr/local/mysql --with-mysqld-user=mysql --without-debug --with-big-tables --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all --enable-static --enable-thread-safe-client --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --without-ndb-debug
//117.79.226.114编译参数
./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/var --with-comment=Source --with-server-suffix=-hx10 --with-mysqld-user=mysql --without-debug --with-big-tables --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all --with-pthread --enable-static --enable-thread-safe-client --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --without-ndb-debug
#make && make install //安装mysql
#cd support-files/ //进入mysql可执行程序的目录
#ls //查看文件
#cp mysql.server /etc/init.d/ //复制mysql可执行程序到指定目录
#chmod +x /etc/init.d/mysql.server //设置mysql的程序可执行权限
#ls //查看文件
#cp my-huge.cnf /etc/my.cnf //复制mysql的配置文件到指定目录并且修改名字
#y //同意覆盖mysql的配置文件
#cd ../scripts/ //进入到生成数据库文件目录
#ls //查看目录文件
#./mysql_install_db //生成数据库文件
#/etc/init.d/mysql.server stop //停止mysql
#vim /etc/my.cnf
1、在[client]这个模块下增加:default-character-set=utf8 //设置mysql的编码
2、在[mysqld]这个模块下增加:
default-character-set=utf8 //设置mysql的编码
init_connect='SET NAMES utf8' //设置mysql的编码
#cd /usr/local/mysql //进入到mysql的安装目录
#cp -r var/ /home/var //将mysql的数据存储目录文件复制到磁盘空间较大的目录
#mv var/ var.bak //修改mysql的数据存储目录
#ln -s /home/var var //将mysql的数据存储目录软链接的到磁盘空间较大的目录
#chown -R mysql:mysql /home/var/ //设置mysql的数据存储目录的权限
#chown -R mysql:mysql /usr/local/mysql //设置mysql的权限
#/etc/init.d/mysql.server start //启动mysql
进入mysql,查看mysql编码:
#mysql -p
输入密码,显示如下内容即为正常。
mysql>show variables like 'character%'; //查看mysql的编码
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+
8 rows in set (0.00 sec)
mysql>
ps:如果未修改编码,在倒入数据之前(source)需要执行set names utf8;也可以解决mysql导入中文数据乱码问题。
php安装:
#yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel glibc glibc-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers //安装php说需要的库
#yum -y install libxml2-devel //安装libxml2-devel
#yum -y install libcurl-devel //安装libcurl-devel
#yum -y install libjpeg-devel //安装libjpeg-devel
#yum -y install libpng-devel //安装libpng-devel
#yum -y install freetype-devel //安装freetype-devel
#wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz //下载libmcrypt
#tar zxf libmcrypt-2.5.7.tar.gz //解压libmcrypt
#cd libmcrypt-2.5.7 //进入libmcrypt的解压目录
#ls //查看文件
#./configure //编译libmcrypt
#make && make install //安装libmcrypt
#cd /home/tools/ //进入软件存储目录
#tar zxvf php-5.2.14.tar.gz //解压php
#gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1 //让php支持php-fpm
#cd php-5.2.14 //进入php解压目录
#./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-bcmath --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-iconv-dir --with-mhash --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --with-mcrypt --disable-rpath --enable-discard-path --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --with-gd --enable-gd-native-ttf --with-mhash --enable-pcntl --enable-sockets --enable-zip --enable-soap --disable-cli //编辑php
(编译的时候会报错:
1.如果提示:"configure: error: libjpeg.(a|so) not found"错误
#whereis libjpeg
#cp -frp /usr/lib64/libjpeg.* /usr/lib/
2.注意过程中提示:"Configure: error: libpng.(also) not found."错误,解决办法和上面的一样.
#whereis libjpeg
#cp -frp /usr/lib64/libpng* /usr/lib/
3、注意过程中提示:configure: error: Please reinstall libmhash - I cannot find mhash.h
#yum -y install mhash-devel //安装mhash-devel
#make && make install //安装php
#cp php.ini-dist /usr/local/php/etc/php.ini //复制php的配置文件到指定目录并且改名
安装memcache
#tar zxvf memcache-2.2.5.tgz //解压memcache
#cd memcache-2.2.5 //进入memcache解压目录
#/usr/local/php/bin/phpize //让php支持memcache
#./configure --with-php-config=/usr/local/php/bin/php-config //编译memcache
#make && make install //安装memcache
安装libevent
#yum -y install libevent libevent-devel //安装libevent和libevent-devel
安装memcached
#cd .. //进入软件下载目录
#tar zxvf memcached-1.4.4.tar.gz //解压memcached
#cd memcached-1.4.4 //进入memcached的解压目录
#./configure --prefix=/usr/local/memcached //编译memcached
#make && make install //安装memcached
#cd .. //进入软件下载目录
安装eaccelerator
#wget http://acelnmp.googlecode.com/files/eaccelerator-0.9.6.1.tar.bz2 //下载eaccelerator
#tar jxvf eaccelerator-0.9.6.1.tar.bz2 //解压eaccelerator
#cd eaccelerator-0.9.6.1/ //进入eaccelerator解压目录
#/usr/local/php/bin/phpize //让php支持eaccelerator
#./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config //编译eaccelerator
#make && make install //安装eaccelerator
#cd .. //进入软件下载目录
安装PDO_MYSQL
#tar zxvf PDO_MYSQL-1.0.2.tgz //解压PDO_MYSQL
#cd PDO_MYSQL-1.0.2 //进入PDO_MYSQL的解压目录
#/usr/local/php/bin/phpize //让php支持PDO_MYSQL
#./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql/ //编译PDO_MYSQL
#make && make install //安装PDO_MYSQL
修改php.ini文件
#vim /usr/local/php/etc/php.ini
手工修改:查找/usr/local/php/etc/php.ini中的extension_dir = "./"
修改为extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
并在此行后增加以下几行,然后保存:
extension = "memcache.so" //让php支持缓存
extension = "pdo_mysql.so" //让php可以连接mysql
配置eAccelerator加速PHP
#mkdir -p /home/logs/eaccelerator_cache
#vim /usr/local/php/etc/php.ini //增加php的加速模块
在文件最底部添加:
[eaccelerator]
extension="eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/home/logs/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
#vim /usr/local/php/etc/php-fpm.conf //修改php-fpm配置文件
修改参数:
user:www
group:www
max_children:128
StartServers:20
MinSpareServers:5
MaxSpareServers:35
rlimit_files:65535
max_requests:1024
启动php-fpm
#/usr/local/php/sbin/php-fpm start
报错:
Starting php_fpm eAccelerator: Could not allocate 67108864 bytes, the maximum size the kernel allows is 33554432 bytes. Lower the amount of memory request or increase the limit in /proc/sys/kernel/shmmax.
PHP Warning: [eAccelerator] Can not create shared memory area in Unknown on line 0
PHP Fatal error: Unable to start eAccelerator module in Unknown on line 0
failed
#说明
php.ini中设置的eAccelerator,eaccelerator.shm_size=”64″,解释:eaccelerator可使用的共享内存大小(单位为MB),即64M
在Linux下,单个进程的最大内存使用量受/proc/sys/kernel/shmmax中设置的数字限制(单位为字节) /proc/sys/kernel/shmmax = 33554432 (32M)
临时更改该值:
echo 128000000 > /proc/sys/kernel/shmmax
或者
vi /etc/sysctl.conf
kernel.shmmax = 128000000
syscatl -p
报错:
Starting php_fpm PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ eaccelerator.so' - /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ eaccelerator.so: cannot open shared object file: No such file or directory in Unknown on line 0
是因为php.ini文件中
extension=" eaccelerator.so"
eaccelerator.cache_dir="/home/logs /eaccelerator_cache"
这两个地方有空格
Starting php_fpm /usr/local/php/bin/php-cgi: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
failed
#cd /usr/local/mysql/lib/
#cp libmysqlclient.so.18 /usr/local/lib
nginx+mysql+php的更多相关文章
- virtualbox搭建ubuntu server nginx+mysql+tomcat web服务器1 (未完待续)
virtualbox搭建ubuntu server nginx+mysql+tomcat web服务器1 (未完待续) 第一次接触到 linux,不知道linux的确很强大,然后用virtualbox ...
- nginx + mysql + php相关源码包及安装
nginx + mysql + php安装 引言 完整的搭建一个nginx+php-fpm+mysql的服务器,一直是我向做的,不过一致没有完成过,这次工作需要,终于安装成功了 我列出了我遇到的一些问 ...
- mac 安装 php nginx mysql
mac下面安装php nginx mysql根linux下面差不多,建议大家使用brew管理工具包安装. 1,安装homebrew http://brew.sh/index_zh-cn.html 安装 ...
- LNMP-Linux下Nginx+MySQL+PHP+phpMyAdmin+eAcelerator一键安装包
LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat.Debian/Ubuntu VPS(VDS)或独立主机安装LNMP(Nginx.MySQL.PHP.phpMyA ...
- CentOS 6.0最小化编译安装Nginx+MySQL+PHP+Zend
http://www.osyunwei.com/archives/235.html 引言: 操作系统:CentOS 6.0 32位 下载地址:http://mirrors.163.co ...
- 在阿里云 CentOS 服务器(ECS)上搭建 nginx + mysql + php-fpm 环境
阿里云的云服务器(ECS)可以选择多种操作系统,打算用它运行 Drupal或者 WordPress ,你最好选择 Linux 系统,这篇文章的演示是基于阿里云的 CentOS 操作系统的服务器.我们在 ...
- [Linux] Ubuntu Server 12.04 LTS 平台上搭建WordPress(Nginx+MySql+PHP) Part II
接着上一节继续搭建我们的LNMP平台,接下来我们安装PHP相关的服务 sudo apt-get install php5-cli php5-cgi php5-fpm php5-mcrypt php5- ...
- [Linux] Ubuntu Server 12.04 LTS 平台上搭建WordPress(Nginx+MySQL+PHP) Part IV
接下来我们去下载 WorePress 用最新的 3.7.1 下载地址是:http://cn.wordpress.org/wordpress-3.7.1-zh_CN.zip 我们先建立一个文件夹 /va ...
- lnmp全面优化集合nginx+mysql+php
lnmp的全名是linux+nginx+mysql+php,既然是全面优化那我们就从linux系统的选择入手.debian系统可以算是 linux各分支中做的比较突出的一类,连谷歌都抛弃linux订制 ...
- ELK监控系统nginx / mysql慢日志
ELK监控系统nginx / mysql慢日志 elasticsearch logstash kibana ELK监控系统nginx日志 1.环境准备 centos6.8_64 mini IP:192 ...
随机推荐
- 异步编程设计模式Demo - AsyncComponentSample
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.C ...
- 利用Azure高级存储搭建高性能Linux服务器(2)
我们首先来测试随机写的IOPS,可以看到随机写的IOPS可以达到,顺序写的IOPS可以达到: $ sudo fio -filename=/data/testfile -direct=1 -iodept ...
- Ceph的Block分析
一个块是一个连续的字节序列(例如一个512字节的连续数据是一个块).基于块的存储接口通常是旋转介质,例如磁盘.光盘.软盘等.块设备接口的普及使得可以用虚拟的块设备成为和大容量数据存储系统交互的接口,如 ...
- Eclipse配置JDK的源代码的src.zip
Eclipse配置JDK的源代码的src.zip包很简单.只需要简单的几个步骤. 1.点 “window”-> “Preferences” -> “Java” -> “Install ...
- 多目录下多文件 makefile编写
前面已经分享了单目录项下多文件的makefile的编写,现在来看看多目录下多文件makefile的编写: 在做项目时,一般文件都会分几个目录来存放:基本的是 include/ bin/ src/ ...
- EBS查找运行请求时间,参数等
--查找运行请求时间,参数等(可以是某用户的,某个报表) select c.user_name, papf.full_name, b.user_concurrent_program_name, a.r ...
- POJ_Fibonacci POJ_3070(矩阵快速幂入门题,附上自己写的矩阵模板)
Fibonacci Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10521 Accepted: 7477 Descri ...
- 《Algorithms 4th Edition》读书笔记——3.1 符号表(Elementary Symbol Tables)-Ⅲ
3.1.3 用例举例 在学习它的实现之前我们还是应该先看看如何使用它.相应的我们这里考察两个用例:一个用来跟踪算法在小规模输入下的行为测试用例和一个来寻找更高效的实现的性能测试用例. 3.1.3.1 ...
- 第12讲- Android之消息提示Toast
第12讲 Android之消息提示Toast .Toast Toast 是一个 View 视图,在应用程序上浮动显示少量的信息给用户,它永远不会获得焦点,不影响用户的输入等操作,主要用于向用户显示一些 ...
- AJAX实现google搜索建议实战
搜索建议实战的目标是为了输入搜索内容,动态的进行匹配,效果图如下: 整体思路: 在客户端搜索框中触发onkeyup事件, 随时向PHP服务器请求当前输入框中的内容, PHP服务器获取到keywords ...