Linux/Centos源码安装配置Nginx+PHP+MySQL

2016-5-24 寒川 计算机

一、安装前准备:
1、装源码安装环境(一大堆的依赖)
yum install gcc gcc-c++ ncurses-devel perl
yum -y install zlib zlib-devel openssl openssl-devel pcre-devel #nginx要用
yum install -y libxml2-devel libcurl-devel libjpeg-devel libpng-devel libicu-devel openldap-devel
yum install -y fontconfig fontconfig-devel libXpm* libtool* libxml2 curl curl-devel libpng libjpeg* libsepol-devel glibc gd php-gd libvpx-devel

2、装cmake(mysql编译需要)
wget https://cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
tar -xzvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./bootstrap; make ; make install
cd ~
二、装nginx
1、增加www用户组及用户
groupadd www
useradd -g www www -s /bin/false


2、增加nginx的缓存文件夹

mkdir -p /var/cache/nginx/client_temp


3、下载解压进入目录:
wget http://nginx.org/download/nginx-1.9.15.tar.gz
tar -zxvf nginx-1.9.15.tar.gz
cd nginx-1.9.15

4、编译配置:
./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
--user=www \
--group=www \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-http_auth_request_module \
--with-mail \
--with-mail_ssl_module \
--with-file-aio \
--with-ipv6 \
--with-http_v2_module \
--with-pcre \
--with-cc-opt='-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic'


5、编译安装
make && make install
cd ~
6、启动
nginx -c /usr/local/nginx/nginx.conf
7、停止|重启
nginx -s stop|reload

三、装mysql
1、增加mysql用户组及用户
groupadd mysql
useradd -r -g mysql mysql
2、创建相关目录
mkdir -p /usr/local/mysql
mkdir -p /data/mysqldb
3、下载解压进入目录
wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.30.tar.gz
tar -zxv -f mysql-5.6.30.tar.gz
cd mysql-5.6.30



4、设置编译参数
装mysql-5.6.30版
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \   
-DDEFAULT_CHARSET=utf8 \   
-DDEFAULT_COLLATION=utf8_general_ci \   
-DWITH_INNOBASE_STORAGE_ENGINE=1 \   
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \   
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \   
-DMYSQL_DATADIR=/data/mysqldb \   
-DMYSQL_TCP_PORT=3306 \   
-DENABLE_DOWNLOADS=1

注:重新运行配置,需要删除CMakeCache.txt文件
rm CMakeCache.txt

5、编译源码
make && make install

6、修改mysql目录所有者和组
6.1、修改mysql安装目录
cd /usr/local/mysql
chown -R mysql:mysql .

6.2、修改mysql数据库文件目录
cd /data/mysqldb
chown -R mysql:mysql .

7、初始化mysql数据库
cd /usr/local/mysql   
scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb

8、复制mysql服务启动配置文件
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

9、复制mysql服务启动脚本
cp support-files/mysql.server /etc/init.d/mysqld   

10、增加执行权限
chmod 755 /etc/init.d/mysqld 

11、加入开机启动
chkconfig mysqld on 

12、mysql服务加入PATH路径
vim /etc/profile 
文件最后加入  
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH  
export PATH
esc :wq

13、使配置生效
source /etc/profile  
14、启动
service mysqld start 

15、检查mysql服务是否启动
netstat -tulnp | grep 3306   
mysql -u root -p
密码为空,如果能登陆上,则安装成功。

16、修改MySQL用户root的密码
mysqladmin -u root password 'qiawei88'

四、装php5.6
1、下载解压进入目录
cd ~
wget http://cn2.php.net/distributions/php-5.6.21.tar.gz
tar -zxv -f php-5.6.21.tar.gz
cd php-5.6.21
2、编译配置
./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 \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-pdo-mysql=/usr/local/mysql \
--with-gd --with-png-dir=/usr/local/libpng \
--with-jpeg-dir=/usr/local/jpeg \
--with-freetype-dir=/usr/local/freetype \
--with-xpm-dir=/usr/ \
--with-vpx-dir=/usr/local/libvpx/ \
--with-zlib-dir=/usr/local/zlib \
--with-iconv \
--enable-libxml \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-opcache \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--with-curl \
--disable-fileinfo \
--enable-ctype


3、编译安装
make && make install

4、复制php配置文件到安装目录
cp php.ini-production /usr/local/php/etc/php.ini 

5、删除系统自带配置文件
rm -rf /etc/php.ini 

6、添加软链接到 /etc目录
ln -s /usr/local/php/etc/php.ini /etc/php.ini 

7、拷贝模板文件为php-fpm配置文件
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 
8、添加软连接到 /etc目录
ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf

9、编辑php-fpm.conf 
vi /usr/local/php/etc/php-fpm.conf 

user = www #设置php-fpm运行账号为www
group = www #设置php-fpm运行组为www
pid = run/php-fpm.pid #取消前面的分号
:wq! #保存退出

10、拷贝php-fpm到启动目录
cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm

11、添加执行权限
chmod +x /etc/rc.d/init.d/php-fpm

12、设置开机启动
chkconfig php-fpm on #

五、配置nginx支持php

1、修改nginx.com的配置
vi /usr/local/nginx/nginx.conf

修改/usr/local/nginx/nginx.conf 配置文件,需做如下修改

user www www; #首行user去掉注释,修改Nginx运行组为www www;
必须与/usr/local/php/etc/php-fpm.conf中的user,group配置相同,否则php运行出错
index index.php index.html index.htm; #添加index.php

#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;
#}
#此段注释改为下面的内容
location ~ \.php$ {
root           html;
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; # /scripts$fastcgi_script_name
include        fastcgi_params;
}

2、重启nginx
nginx -s reload 

3、启动php-fpm
service php-fpm start 


六、其他:
修改目录权限
chown -R www /usr/local/nginx/html
chgrp -R www /usr/local/nginx/html

标签: php mysql linux nginx lnmp

评论(4) 浏览(4904)

screen命令让linux关闭ssh后进程继续运行。

2016-4-11 寒川 计算机

如何在关闭ssh连接的情况下,让程序继续运行?

答案就是screen了,不错的软件。

如果服务器没装screen软件,请尝试安装之:


yum install screen


安装完成后就可以用screen了,

#screen
回车后进入Screen子界面,此时putty标题栏会指示处于子界面状态,然后运行你的程序
#应用程序名
然后按下Ctrl+A后抬起,然后按下d键,此时切换回主界面,Putty的窗口标题栏也会指示。
#进行其他的操作,或者exit
 
此时就是断开ssh,程序仍在运行。以后重新ssh连接后,输入
#screen -ls
,查看子界面的代号,然后输入
#screen -r 子界面代号
就可以查看当初你程序运行所在的子界面了。

标签: linux screen ssh

评论(0) 浏览(5400)

centos 修改系统时间无效

2015-5-12 寒川 计算机

情况是这样,我的centos服务器时间故障,系统时间显示未2014年02月14日,采用date -s 命令无法修改centos的系统时间,修改及结果如下:

QQ截图20150512122525.jpg

真是蛋疼,采用date -s修改系统时间,修改后在date,结果居然没变。

百度了很多办法没效果,最后居然用必应解决了。

命令如下:

echo 1 > /proc/sys/xen/independent_wallclock

ntpdate cn.pool.ntp.org

然后系统时间就正常了。


附录:

①、若没有ntpdate命令,Centos请执行 yum -y install ntp*

②、更改系统时区为北京时间:cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

③、添加时间同步任务计划:

i:若没有crontab,请执行 yum -y install vixie-cron crontabs

ii:执行 crontab -e

iii:按 i 添加一行:

*/30 * * * *  /usr/sbin/ntpdate -u pool.ntp.org  #每30分钟同步一次时间

iv:按下ESC,并键入  :wq 保存退出即可。


标签: linux CentOS 系统时间

评论(0) 浏览(7080)

用mod_speling模块让linux下的apache不区分大小写

2015-3-18 寒川 计算机

大概是这样一个情况,有一套windows的php程序,现在准备移植到linux下面,然而,由于各种原因,源程序中对文件目录的大小写很不敏感,若逐一修改源代码,显得费时,比如有的地方用的是./Js/xx.js,有的地方又用的./js/xx.js,还有各种图片路径大小写相当混乱。在懒得修改源程序的情况下,首先想到的是如何让apache服务器能不区分url路径的大小写,百度一下,出来一大堆,然而大多讲的很粗略。经过短时间琢磨,下面将详细的介绍一下linux下面如何安装mod_speling达到让apache不区分路径大小写的目的。测试环境:wdcp面板,apache版本为2.2.24,其他版请参考本文配置。下面进入正题:

1、下载apache源码,因为没找到2.2.24版本的apache源码,我直接下载的2.2.29版本的apache,虽然此版本有点差异,但是还好mod_speling能使用。apache 2.2.29下载地址:http://httpd.apache.org/download.cgi

2、解压源码,找到httpd-2.2.29/modules/mappers目录,将其上传至linux服务器的/www/wdlinux/httpd-2.2.24/bin/目录。

3、cd至linux服务器的/www/wdlinux/httpd-2.2.24/bin/mappers/,然后运行/www/wdlinux/httpd-2.2.24/bin//apxs -c -i -a mod_speling.c。

4、查看/www/wdlinux/httpd-2.2.24/modules/mod_speling.so这个文件是否已经生成,同时查看/www/wdlinux/httpd-2.2.24/conf/httpd.conf中是否已经添加LoadModule speling_module     modules/mod_speling.so,若没有,且/www/wdlinux/httpd-2.2.24/modules/下面存在mod_speling.so文件,请手动添加。

5、在/www/wdlinux/httpd-2.2.24/conf/httpd.conf文件最后一行添加CheckSpelling  on,以启用模块。

6、重启apache服务,server httpd restart,若无意外,应该就成功安装了mod_speling模块。

祝你好运!

标签: linux apache mod_speling

评论(1) 浏览(9780)

linux创建目录连接

2015-2-16 寒川 计算机

linux创建目录链接命令如下:


ln -s /www/web/web1/images images #在当前目录创建/www/web/web1/images链接。


这样做的目的,比如,我有个网站,web1.com,想将图片放到img.web1.com下面,这样采用目录链接,在img.web1.com就可以访问图片,利于网站提速。

标签: linux 网站 ln

评论(2) 浏览(9665)

linux netstat命令使用收集,查看80端口连接数

2014-9-3 寒川 计算机

服务器上的一些统计数据:

1)统计80端口连接数
netstat -nat|grep -i "80"|wc -l

2)统计httpd协议连接数
ps -ef|grep httpd|wc -l

3)、统计已连接上的,状态为“established
netstat -na|grep ESTABLISHED|wc -l

4)、查出哪个IP地址连接最多,将其封了.
netstat -na|grep ESTABLISHED|awk {print $5}|awk -F: {print $1}|sort|uniq -c|sort -r +0n

netstat -na|grep SYN|awk {print $5}|awk -F: {print $1}|sort|uniq -c|sort -r +0n

---------------------------------------------------------------------------------------------

1、查看apache当前并发访问数:
netstat -an | grep ESTABLISHED | wc -l

对比httpd.conf中MaxClients的数字差距多少。

2、查看有多少个进程数:
ps aux|grep httpd|wc -l

3、可以使用如下参数查看数据
server-status?auto

#ps -ef|grep httpd|wc -l
1388
统计httpd进程数,连个请求会启动一个进程,使用于Apache服务器。
表示Apache能够处理1388个并发请求,这个值Apache可根据负载情况自动调整。

#netstat -nat|grep -i "80"|wc -l
4341
netstat -an会打印系统当前网络链接状态,而grep -i "80"是用来提取与80端口有关的连接的,wc -l进行连接数统计。
最终返回的数字就是当前所有80端口的请求总数。

#netstat -na|grep ESTABLISHED|wc -l
376
netstat -an会打印系统当前网络链接状态,而grep ESTABLISHED 提取出已建立连接的信息。 然后wc -l统计。
最终返回的数字就是当前所有80端口的已建立连接的总数。

netstat -nat||grep ESTABLISHED|wc - 可查看所有建立连接的详细记录

查看Apache的并发请求数及其TCP连接状态:
Linux命令:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

返回结果示例:
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057
其中的
SYN_RECV表示正在等待处理的请求数;
ESTABLISHED表示正常数据传输状态;
TIME_WAIT表示处理完毕,等待超时结束的请求数。

---------------------------------------------------------------------------------------------

查看httpd进程数(即prefork模式下Apache能够处理的并发请求数):
Linux命令:
     ps -ef | grep httpd | wc -l

查看Apache的并发请求数及其TCP连接状态:

Linux命令:
     netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
返回结果示例:
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057

说明:
   SYN_RECV表示正在等待处理的请求数;
   ESTABLISHED表示正常数据传输状态;
   TIME_WAIT表示处理完毕,等待超时结束的请求数。

标签: linux netstat

评论(1) 浏览(29860)

linux使用常用命令记录

2014-9-2 寒川 计算机

最近一直敲PHP代码,好久没使用linux,貌似命令忘记差不多了。随便记录一下。

查看分区大小:

df -h

查看某个文件夹总大小

du -sh /www

顺便记录一下之前想记又来不及记的,scp命令

scp -P 22 root@192.168.1.5:/www /www

上述命令意思就不说了,随便写写,表示博主还没挂墙上。

顺便说下,好久没来博客,登录后台发现好多垃圾评论留言,一律删除之。请勿用软件机器留言了,同时请勿发表任何违反相关规定的任何言论。谢谢!

标签: linux scp

评论(0) 浏览(8336)

Powered by emlog 蜀ICP备12030225号

川公网安备 51042102000001号

sitemap