lnmp架构与PHP站点部署

安装nginx

useradd -s /sbin/nologin www -M

yum -y install pcre-devel openssl-devel


./configure \
--prefix=/application/nginx-1.12.2 \
--user=www \
--group=www \
--with-http_ssl_module \
--with-http_stub_status_module
make
make install




php
php语言 解释型语言


lamp (linux apache(httpd)mysql php)


安装php (php解释器)
php程序(php-fpm)+ php解释器


145M php-5.5.38

代码(文本) --- 编译 --》 二进制

configure

yum install -y zlib libjpeg freetype libpng gd curl zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel libjpeg-turbo-devel libcurl-devel libxslt-devel
yum -y install libmcrypt-devel mhash mcrypt


配置编译选项 (预编译)
./configure \
--prefix=/application/php-5.5.38 \
--enable-mysqlnd \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--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 \
--with-gettext \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-opcache=no \
--enable-ftp


147M php-5.5.38

编译
make

319M php-5.5.38


安装
make install


配置
php解释器配置文件
cp /server/tools/php-5.5.38/php.ini-production /application/php-5.5.38/lib/php.ini

php主配置文件
cp /application/php-5.5.38/etc/php-fpm.conf.default /application/php-5.5.38/etc/php-fpm.conf


php7配置
cp /application/php-7.2.4/etc/php-fpm.d/www.conf.default /application/php-7.2.4/etc/php-fpm.d/www.conf

启动
/application/php-5.5.38/sbin/php-fpm

nginx主配置文件配置
cat /application/nginx-1.10.3/conf/nginx.conf
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 blog.etiantian.org;
root html/blog;
index index.php index.html index.htm;
access_log logs/access.log main;
location ~ .*\.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}

}
}

cat /application/nginx/conf/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
error_log /app/logs/nginx_error.log;
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 blog.etiantian.org;
root /app/html/blog;
index index.php index.html index.htm;
access_log /app/logs/blog/blog_access.log main;
location ~ .*\.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}

}
}


php测试文件
cat /application/nginx/html/blog/index.php
<?php
phpinfo();
?>

#源码安装MySQL

wget https://downloads.mysql.com/archives/get/file/mysql-5.6.36.tar.gz
yum install -y gcc gcc-c++ automake autoconf
yum -y install cmake bison-devel ncurses-devel libaio-devel

预编译
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.34 \
-DMYSQL_DATADIR=/application/mysql-5.6.34/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.34/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0

编译 && 安装
make && make install


安装后操作
useradd -s /sbin/nologin mysql -M
ln -s /application/mysql-5.6.34 /application/mysql
chown -R mysql.mysql /application/mysql/data
/application/mysql/scripts/mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data
/bin/cp /application/mysql/support-files/my-default.cnf /etc/my.cnf
/bin/cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
echo 'export PATH=/application/mysql/bin:$PATH' >> /etc/profile
. /etc/profile
chkconfig --add mysqld

#二进制安装修改
sed -i 's#/usr/local#/application#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld

#MySQL配置文件修改
/etc/my.cnf
[mysqld]
basedir = /application/mysql
datadir = /data/mysql/data


启动错误
Starting MySQL.Logging to '/application/mysql-5.6.36/data/db01.err'.
171113 13:07:01 mysqld_safe Directory '/application/mysql-5.6.36/tmp' for UNIX socket file don't exists.
ERROR! The server quit without updating PID file (/application/mysql-5.6.36/data/db01.pid).

mkdir /application/mysql-5.6.36/tmp
chown -R mysql.mysql /application/mysql-5.6.36/tmp

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


#删除无用的用户
drop user root@'db01';
drop user ''@'db01';
drop user ''@'localhost';
drop user root@'::1';


#mysql数据库添加授权用户
grant all on wordpress.* to wordpress@'172.16.1.%' identified by '123456';

wordpress用户登录数据库
mysql -h 172.16.1.7 -uwordpress -p123456

php连接mysql测试文件
cat /application/nginx/html/blog/php_mysql.php
<?php
//$link_id=mysql_connect('主机名','用户','密码');
$link_id=mysql_connect('172.16.1.7','wordpress','123456') or mysql_error();
if($link_id){
echo "mysql successful by wordpress !\n";
}else{
echo "mysql_error()";

}

?>

wordpress程序部署

1、上传wordpress程序到站点目录blog并授权www用户

chown -R www.www blog/


2、创建数据库wordpress
create database wordpress;


3、web页面操作
blog.etiantian.org

++++++++++++++++++++++++++++++++++++++++++

web01服务器存储目录挂载到nfs01共享目录
yum install rpcbind nfs-utils

1、nfs01操作
/etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=502,anongid=502)

nfs01 www用户uid与 web01 www用户uid相同
useradd -u 502 -s /sbin/nologin -M www

web01操作

1、查找图片目录
方法1:
find ./blog/ -type f -mmin -5
方法2:
inotify -mrq html/blog
方法3:
http://blog.etiantian.org/wp-content/uploads/2018/02/dns%E7%B3%BB%E7%BB%9F-300x199.jpg

2、挂载之前把图片目录暂时移走
3、挂载
mount -t nfs 172.16.1.31:/data /application/nginx/html/blog/wp-content/uploads
4、把图片目录移动回来

+++++++++++++++++++++++++++++++++++++++++++++++++


迁移数据
方法1:
1、准备db01机器 (10.0.0.51 172.16.1.51)安装 mysql

2、web01数据库导出
方法1:
mysqldump -uroot -poldboy123 -B wordpress > /tmp/wordpress.sql

方法2:
mysqldump -uroot -poldboy123 -A -B > /tmp/all.sql



2、db01(10.0.0.51 172.16.1.51)到导入数据

方法1:
mysql -uroot -poldboy123 < /tmp/wordpress.sql



方法2:
mysql -uroot -poldboy123 < /tmp/all.sql


3、登录db01数据库刷新权限
flush privileges;


方法2:
rsync -a /application/mysql-5.6.34 [email protected]:/application/
scp /etc/my.cnf [email protected]:/etc/
scp /etc/init.d/mysqld [email protected]:/etc/init.d/

附:
mysql数据库 sql语句

查看所有数据库
show databases;


创建数据库wordpress
create database wordpress;


进入数据库wordpress
use wordpress;

查看wordpress数据库中的所有表
show tables from wordpress;

添加用户 wordpress@'172.16.1.0/255.255.255.0' 并授权
grant all on *.* to wordpress@'172.16.1.0/255.255.255.0' identified by '123456';


查看数据库用户信息
select user,host,password from mysql.user;

删除数据库用户
drop user wordpress@'172.16.1.0/255.255.255.0';

猜你喜欢

转载自www.cnblogs.com/xiadongzhi/p/9166864.html