1.nginx 安装
查看yum下nginx版本信息
yum list | grep nginx
发现版本太低,手动添加nginx的yum仓库:
vi /etc/yum.repos.d/nginx.repo
内容:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
编辑保存之后再查看nginx版本
安装:
yum install -y nginx
安装完成之后可以通过 service nginx start 来启动服务
注:
/etc/init.d/nginx start # 启动Nginx服务
/etc/init.d/nginx stop # 停止Nginx服务
/etc/nginx/nginx.conf # Nginx配置文件位置
#设置nginx随系统启动
chkconfig nginx on
nginx的安装到此完成,启动之后可以在浏览器ip访问,会显示nginx的页面
2.安装php、php-fpm
2.1 安装
先下载php5.6版本,下载的源码放在/usr/local/src/ 下
cd /usr/local/src/
wget http://php.net/distributions/php-5.6.8.tar.gz
tar -xvf php-5.6.8.tar.gz
编译php需要一些依赖包:
yum install -y \
libxml2 \
libxml2-devel \
openssl-devel \
libjpeg \
libjpeg-devel \
libpng \
libpng-devel \
freetype \
freetype-devel \
libmcrypt \
libmcrypt-devel \
mcrypt mhash
configure:
./configure --prefix=/usr/local/php5 \
--with-config-file-path=/usr/local/php5/etc \
--enable-fpm --disable-ipv6 \
--enable-pdo --with-pdo-mysql \
--with-openssl \
--with-mcrypt \
--with-mhash \
--enable-json \
--enable-mbstring \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--enable-zip
如果遇到mcrypt出错信息:
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
tar zxf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure
make && make install
然后重新执行php configure
安装:
make
make install
安装完成之后设置fpm
cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf
vi php-fpm.conf
# 找到如下几行,确保如下几行前没有”;”
pid = run/php-fpm.pid
error_log = log/php-fpm.log
log_level = notice
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
pm表示使用哪种方式,有两个值可以选择,就是static(静态)或者dynamic(动态)。在更老一些的版本中,dynamic被称作apache-like。这个要注意看配置文件的说明。
下面4个参数的意思分别为:
pm.max_children:静态方式下开启的php-fpm进程数量。
pm.start_servers:动态方式下的起始php-fpm进程数量。
pm.min_spare_servers:动态方式下的最小php-fpm进程数量。
pm.max_spare_servers:动态方式下的最大php-fpm进程数量。
如果dm设置为static,那么其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程。
如果dm设置为 dynamic,那么pm.max_children参数失效,后面3个参数生效。
系统会在php-fpm运行开始 的时候启动pm.start_servers个php-fpm进程,
然后根据系统的需求动态在pm.min_spare_servers和 pm.max_spare_servers之间调整php-fpm进程数。
利用php自带的php-fpm管理工具,可以很方便的start,stop,restart
把管理工具从源码包里放到php5/sbin文件夹里,方便使用
#添加php-fpm到启动项目录
cp /usr/local/src/php-5.6.8/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
#设置php-fpm权限
chmod 755 /etc/init.d/php-fpm
#设置自启动
chkconfig php-fpm start
2.2 配置php session
cd /usr/local/php5/etc
vi php.ini
#搜索 session.save_path , 去掉前面的 ;
session.save_path = "/var/lib/php/session" ; #此处假定session 保存在 /var/lib/php/session 目录下
#建立目录
mkdir -p /var/lib/php/session
chmod -R 777 /var/lib/php/session/ #更改目录权限
2.3 yum php 5.6 源配置
(可前往 https://webtatic.com/packages/php56/ 查看)
2.3.1 yum更新
163、aliyun镜像的php版本太低,需要对yum源进行更新
CentOS/RHEL 7.x:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm |
CentOS/RHEL 6.x:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
|
2.3.2 查看安装php56命令
yum list php56* #可以查看php5.6的各种包
执行 yum -y install *** 即可
yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64
注:70的安装与此类似。
2.3.3 安装PHP FPM
yum install php56w-fpm
3.安装MYSQL-Server
3.1 Yum安装
系统自带的yum库并没有需要版本的mysql,因此先得去mysql官网下载相应的repo对yum库进行扩展
cd /usr/local/
mkdir yumrepo
cd yumrepo
wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
yum localinstall mysql-community-release-el6-5.noarch.rpm #安装yum库
#查看仓库是否安装成功
yum repolist enabled | grep "mysql.*-community.*"
yum install -y mysql-community-server mysql-community-client mysql-community-dever
安装成功之后,输入命令启动mysql
service mysqld start
第一次启动会出现一堆提示:
这里的提示简单的说就是要我们用mysqladmin 对root账户的密码进行设置等等。。。
/usr/bin/mysqladmin -u root password '111111' #设置root密码为六个1
这个告诉我们/etc/my.cnf是首次运行生成的mysql配置文件(优化数据库就需要进这个配置文件配置相关的参数,此处不展开)。
cat /etc/my.cnf
yum 方式安装到此为止
3.2 Rpm安装
(只针对centos 6.5 64)
略去查看操作系统版本...
cd /usr/local/src/
mkdir mysql-server-5.6.21
下载三个rpm软件包:
MySQL-client-5.6.21-1.rhel5.x86_64.rpm
MySQL-devel-5.6.21-1.rhel5.x86_64.rpm
MySQL-server-5.6.21-1.rhel5.x86_64.rpm
cd mysql-server-5.6.21
wget http://dev.mysql.com/Downloads/MySQL-5.6/MySQL-server-5.6.21-1.rhel5.x86_64.rpm
wget http://dev.mysql.com/Downloads/MySQL-5.6/MySQL-devel-5.6.21-1.rhel5.x86_64.rpm
wget http://dev.mysql.com/Downloads/MySQL-5.6/MySQL-client-5.6.21-1.rhel5.x86_64.rpm
安装依赖:
yum install -y libaio
安装mysql
rpm -ivh MySQL-server-5.6.21-1.rhel5.x86_64.rpm
rpm -ivh MySQL-client-5.6.21-1.rhel5.x86_64.rpm
rpm -ivh MySQL-devel-5.6.21-1.rhel5.x86_64.rpm
修改配置文件
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
初始化mysql
/usr/bin/mysql_install_db
启动mysql
service mysql start
查看进程
ps -ef | grep mysql
netstat -anpt | grep 3306
安装过程中会随机生成root密码并保存在/root/.mysql_secret 文件中,用more命令查看
more /root/.mysql_secret
然后用查询的密码登录mysql
mysql -uroot -p******** #****为你查询到的密码
修改密码
SET PASSWORD = PASSWORD('123456'); #123456 为你要设置的root密码
配置mysqld 启动mysql
cp /usr/share/mysql/mysql.server /etc/init.d/mysqld
service mysqld start
chkconfig mysqld on #设置开机启动
到此mysql安装完成
4.配置nginx支持php
cd /etc/nginx/
vi nginx.conf
#打开gzip
gzip on;
注意:
nginx配置端口可能需要关闭selinux
#
#1、临时关闭selinux
setenforce 0 ##设置SELinux 成为permissive模式
setenforce 1 ##设置SELinux 成为enforcing模式
#
#2、永久关闭selinux
vi /etc/selinux/config
#将SELINUX=enforcing改为SELINUX=disabled
#重启机器即可
配置vhost,假设域名为www.a.com
cd /etc/nginx/conf.d/
vi www.a.com.conf
#内容如下
server {
listen 80;
server_name www.a.com a.com;
#让不带www的域名跳转到带www的域名
if($host != 'www.a.com') {
rewrite ^(.*)$ http://www.a.com/$1 permanent;
}
location / {
#开启ssi支持shtml
ssi on;
ssi_silent_errors on;
ssi_types text/shtml;
index index.shtml index.php index.htm index.html;
root /mnt/www/www.a.com;
#框架路由设置
if ( !-e $request_filename ) {
rewrite ^(.*)$ /index.php?url=$1 last;
}
}
location ~\.php$ {
root /mnt/www/www.a.com;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~\.(jpg|jpeg|png|js|css) {
root /mnt/www/www.a.com;
expires 30d;
}
}
测试一下 配置文件是否有错误
/etc/init.d/nginx configtest
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
在数据盘mnt上,新建文件夹/mnt/www/www.a.com,并新建info.php测试文件,内容为
<?php
phpinfo();
?>
在浏览器访问www.a.com/info.php,能显示信息则配置完成
ps:
#配置该网站用户管理
groupadd group_web #group_web 可以根据个人需求命名
useradd user_web -d /mnt/www/www.a.com
chown user_web:group_web /mnt/www/www.a.com
5.phpMyAdmin 安装配置
5.0 检查并修改php对mysql和mysqli支持
phpinfo() 输出可以看到当前php对mysql的支持程度,假设在页面输出信息里面并没有找到mysql的支持
cd /usr/local/src/php-5.6.8/ext/mysql
/usr/local/php5/bin/phpize #执行这句命令生成configure文件
./configure --with-php-config=/usr/local/php5/bin/php-config --with-mysql=shared --enable-shared
编译安装 make && make install
mysqli的编译过程也是类似
cd /usr/local/src/php-5.6.8/ext/mysqli
/usr/local/php5/bin/phpize #执行这句命令在mysqli目录下生成configure
此时可以查看目录下是否生成了configure可执行文件
./configure --with-php-config=/usr/local/php5/bin/php-config --enable-embedded-mysqli=shared --enable-shared
没有错误的话继续
make
make install
一切正常的话,此时会提示你 mysqli.so 生成,当然也可以全盘搜下
find / -name "mysqli.so"
#拷贝 mysql.so mysqli.so 到 php5/ext/
cd /usr/local/php5/
mkdir ext
cp /usr/local/php5/lib/php/extensions/no-debug-non-zts-20131226/mysqli.so /usr/local/php5/ext/ #mysqli.so 路径为上面命令查找所得
cp /usr/local/php5/lib/php/extensions/no-debug-non-zts-20131226/mysql.so /usr/local/php5/ext/
切换到php5目录查看php.ini 是否存在,不存在则拷贝源码目录下的
cd /usr/local/php5/etc
vi php.ini
#添加下面内容
extension_dir = "/usr/local/php5/ext";
extension = mysqli.so ;
extension = mysql.so ;
5.1 安装部署phpMyAdmin
下载phpMyAdmin (http://www.phpmyadmin.net/home_page/index.php),解压后上传到www目录下(tar上传解压也行),把文件夹重命名为 phpMyAdmin,(方便访问)
cd /mnt/www/phpMyAdmin
cp config.sample.inc.php config.inc.php
vi config.inc.php
#修改以下内容
$cfg['blowfish_secret'] = 'www.oschina.com'; #这里的内容随意设置,在cookie访问模式下不能为空
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = '127.0.0.1'; #重要,这里设置成localhost有可能会出现phpMyAdmin无法访问数据库
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '111111'; #这里设置数据库的密码
上面的 host = 127.0.0.1 再强调一遍,设置成localhost有可能会无法访问数据库
接下来就是继续配置nginx
cd /etc/nginx/conf.d/
vi phpmyadmin.conf
#文件内容
server {
listen 9090;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
ssi on;
ssi_silent_errors on;
ssi_types text/shtml;
root /mnt/www/phpMyAdmin;
index index.html index.htm index.php;
if ( !-e $request_filename ) {
rewrite ^(.*)$ /index.php?url=$1 last;
}
}
location ~\.php$ {
root /mnt/www/phpMyAdmin;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
location ~\.(jpg|jpeg|png|js|css) {
root /mnt/www/phpMyAdmin;
expires 30d;
}
}
保存退出后,重启nginx服务,重启mysqld服务,即可。
ex: php扩展安装
ex1 freetds (linux下支持 mssql)
1、安装编译工具及驱动程序
yum install make apr* autoconf automake gcc gcc-c++ wget
2、安装unixODBC驱动程序
yum -y install unixODBC unixODBC-devel
3、安装freetds
cd /usr/local/src
wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.00.tar.gz
tar -xvf freetds-1.00.tar.gz
./configure --prefix=/usr/local/freetds --with-tdsver=7.3 --with-unixodbc=/usr --enable-msdblib
make && make install #安装
echo "/usr/local/freetds/lib/" > /etc/ld.so.conf.d/freetds.conf
ldconfig
4. 查看版本信息
/usr/local/freetds/bin/tsql -C
5. 连接mssql 测试 /usr/local/freetds/bin/tsql -H 数据库服务器IP -p 端口号 -U 用户名 -P 密码
ex2 添加PHP扩展mssql和pdo的pdo_dblib
cd /usr/local/src/php-5.6.8/ext
cd mssql
phpize #生成config
./configure --with-php-config=/usr/local/php5/bin/php-config --with-mssql=/usr/local/freetds/
make && make install
cd ../pdo_dblib
phpize
./configure --with-php-config=/usr/local/php5/bin/php-config --with-pdo-dblib=/usr/local/freetds/
make && make install
在生成目录下,拷贝相应的so文件到php扩展目录,然后修改php.ini 即可