环境:
版本:CentOS-6
web:nginx+php
mysql
/application/ ##安装软件的目录,每台服务器上都一样
##最好也弄一个下载软件包的目录,方便管理
##可以是分离式,也可以安装在一起
开始部署:
-----------------nginx------------------
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
##更新epel源
yum -y install gcc gcc-c++ automake autoconf##安装兼容程序库、开发工具的基础依赖包
wget http://nginx.org/download/nginx-1.12.2.tar.gz
##下载tar包
yum -y install pcre-devel openssl-devel
##安装依赖包
useradd -s /sbin/nologin -M www
##创建管理用户
tar zxf nginx-1.12.2.tar.gz
##解压
cd nginx-1.12.2
##解压后会自动创建一个版本名目录
./configure --prefix=/application/nginx-1.12.2 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module
##进入到解压的目录下进行配置
echo $?
##检查上一个命令的结果是否正确(没错的话就继续)
make && make install
##编译 && 编译安装 (将各种程序语言转换为系统可以识别的二进制信息)
echo $?
ln -s /applicaton/nginx-1.12.2 /application/nginx
##创建软连接,方便使用
cd /application/nginx/conf/
grep -v '^$' nginx.conf.default |egrep -v '#' > nginx.conf
##精简nginx配置文件
chown -R www.www /application/nginx*
##设置属主
echo 'export PATH=/application/nginx/sbin:$PATH' >>/etc/profile
source /etc/profile
##优化nginx命令路径
nginx
##启动服务
ps -ef |grep nginx
##检查
#####nginx+php配置文件简单样例#####
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
server {
listen 80;
server_name www.renyi.com;
root html;
index index.php index.html index.htm;
location ~* .*\.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
access_log logs/access.log main;
}
}
###############################
-----------------mysql------------------
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repotar zxf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz
##解压到当前目录
useradd -s /sbin/nologin -M mysql
##创建管理用户
mv mysql-5.6.34-linux-glibc2.5-x86_64 /application/mysql-5.6.34
##移动到其他目录下,并改名
cd /application/
ln -s /application/mysql-5.6.34 /application/mysql
##创建软连接,方便使用
chown -R mysql.mysql /application/mysql/
##让mysql用户管理 /application/mysql/
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql
##初始化数据库
#1. 确认软件安装在哪里
#2. 确认数据存放在哪里
#3. 确认MySQL使用的用户谁?
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
mysql启动脚本 默认放在support-files/mysql.server
记得给MySQL设置个密码
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/application/mysql/bin/mysqladmin -u root password 'new-password'
/application/mysql/bin/mysqladmin -u root -h web01 password 'new-password'
cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
##复制启动脚本 授权
sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld
##修改启动脚本 和 mysql命令中的路径
\cp /application/mysql/support-files/my-default.cnf /etc/my.cnf
##复制默认的配置文件
/etc/init.d/mysqld start
##至此,mysql数据库安装与启动完成;可以检测进程和服务端口,确认mysql服务是否启动正确
----登录数据库命令简化方法
echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
##把mysql命令路径追加到到/etc/profile文件里
source /etc/profile
##生效配置文件
which mysql
chkconfig --add mysqld
##添加到系统服务
chkconfig mysqld on
##添加到开机自启
mysqladmin -u root password 'renyi123'
##设置mysql root用户的密码 renyi123
mysql -u root -prenyi123
##指定root用户登陆,并免交互
-----------------php------------------
(在nginx上配置)
yum -y install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel libxslt-devel
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14.tar.gz
./configure --prefix=/usr/local/libiconv && make && make installcd ..
##解决PHP软件的依赖关系
yum -y install libmcrypt-devel mhash mcrypt##安装依赖包
tar xf php-5.5.32.tar.gz
##解压php,之前先下载一个
cd php-5.5.32
./configure \
--prefix=/application/php-5.5.32 \
--with-mysql=mysqlnd \
--with-pdo-mysql=mysqlnd \ ##这里报错就可以不要这个--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--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 \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-ftp \
--enable-opcache=no
##进入到解压目录并配置-----如果还出错,就一条一条复制
ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/
touch ext/phar/phar.phar
##避免编译与编译安装过程出现异常
make && make install
##进行软件编译与编译安装过程
ln -s /application/php-5.5.32/ /application/php
##PHP软件程序创建软链接
cd /server/tools/php-5.5.32
ll php.ini*
-rw-r--r--. 1 1001 1001 69236 2016-02-02 21:33 php.ini-development --- 是开发人员调试用配置文件
-rw-r--r--. 1 1001 1001 69266 2016-02-02 21:33 php.ini-production --- 生产环境常用配置文件
cp php.ini-production /application/php/lib/php.ini
cd /application/php/etc/
cp php-fpm.conf.default php-fpm.conf
##配置php解析文件/配置php-fpm配置文件
/application/php/sbin/php-fpm
lsof -i :9000 <--- 确认php 9000端口是否正确启动
ps -ef|grep php-fpm
##启动php-fpm程序
##########
访问nginx测试
##########
##编辑nginx与php连通性测试文件,并进行测试echo '<?php phpinfo(); ?>' >/application/nginx/html/index.php
##测试站点
##当php服务停止时,9000端口信息消失,即停止PHP错误报502错误
##linux系统测试完毕后,建议利用浏览器进行最终测试,测试效果更明显些
##测试php与数据库的连通性
<?php
//$link_id=mysql_connect('主机名','用户','密码');
//mysql -u用户 -p密码 -h 主机
$link_id=mysql_connect('mysql的IP','mysql用户','密码') or mysql_error();
if($link_id){
echo "Successful connection mysql!\n";
}else{
echo mysql_error();
}
?>
##如果mysql是本机,就写 localhost 或者 127.0.0.1
##如果登陆不上,可以先查看一下mysql用户权限
mysql -uroot -prenyi123
select user,host from mysql.user;
grant all on *.* to 'root'@'%' identified by 'renyi123';
成功