LNMP实验:搭建个人博客
start:
nginx-1.10.3.tar.gz
mysql-5.6.22.tar.gz
先安装上面两个,因为php需要指定
php-5.6.30.tar.gz
wordpress-4.5.3
安装nginx(已有脚本)
useradd -M-s /sbin/nologin nginx
yum install-y gcc* pcre-devel zlib-devel
./configure--help|grep status
./configure--user=nginx --group=nginx 加上上面的粘贴
make&& make install
安装数据库(已有脚本)
useradd -M-s /sbin/nologin mysql
...
安装php5.6.30.tar.gz(我之前装的版本是5.5.30,看需不需要重新安装)
进入解压后的目录
./configure--prefix=/usr/local/php5.6.30 --with-gd --with-zlib--with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5.6.30--enable-mbstring --enable-fpm报错,要安装下面的东西
yum install-y libxml2-devel
#yumprovides */png.h(yum searchpng.h找不到就用yum provides*/png.h注意是*/)
yum install-y libpng-devel
make&& make install
# 上面等了半个小时
mysql进入数据库
createdatabase wordpress;
grant all onwordpress.*(库.表) to wordpress@'localhost' identified by'123';
flushprivileges;
\q
cd/usr/local/nginx
vimconf/nginx.conf下面红字
user nginx;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm index.php; 支持php索引页
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000; localcation代理到9000端口
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME脚本存放的位置 /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
}
cd/usr/local/php5.6.30
ls发现没有配置文件
cd/usr/local/php5.6.30/etc/
ls
cpphp-fpm.conf.default php-fpm.conf
vimphp-fpm.conf修改一下
这里面居然是用分号来注释的
第149、150行改nobody为nginx
164多行监听的端口、套接字9000是php的端口
235行子进程的数量改为50
240行pm.start_servers =10 程序一运行开启多少个进程(这个start参数要介于最小空闲和最大空闲之间不然会报错)
245行最小的空闲改为8
250多行最大空闲改为15
试试不改4个值,默认性能怎么样
cd /LBXdir
将wordpress-4.5.3-zh_CN.tar.gz包拷贝到/LBXdir
ls
部署WEB应用
tar xzfwordpress-4.5.3-zh_CN.tar.gz -C /usr/local/nginx/html/ 把wordpress脚本解压到html发布目录
cd/usr/local/nginx/html/
cd/usr/local/nginx/html/wordpress
启动服务
/usr/local/nginx/sbin/nginx
/usr/local/php5.6.30/sbin/php-fpm启动php服务、开启php服务
netstat-luantp | grep 80
netstat-luantp | grep 9000
浏览器输入ip/wordpress
现在就开始
数据库名:wordpress
用户名:wordpress
密码:123
数据库主机:localhost
表前缀:wp_
提交
复制信息
vim/usr/local/nginx/html/wordpress/wp-config.php
粘贴
进行安装
站点标题:hello用户名:admin密码:admin确认使用 电子邮件:lbx@lbx.com安装
kill `pgrepphp-fpm`(这个命令是在php-5.6.30/sbin/php-fpm)
网页连接不上数据库?
没有名字的账户,数据库里面存在匿名用户,需要去删除匿名用户
经验:韩惠个人博客安装的mysql里面的配置文件不能改动,改动就不能启动数据库服务
LNMP全分离实验:
交给下面
nginx静态页面自己处理
交给下面
php动态页面交给php服务器处理
交给下面
mysql
cd/php-5.6.30
.configure--help
yum install-y mariadb-server
rpm -qlmariadb-server
systemctlstart mariadb
ps aux |grep mariadb
--basedir=/usr就是安装目录
做数据库和PHP和nginx分离时加上:
php的--with-mysql=/usr/local/mysql换成--with-mysqli=mysqlnd
网页是放在哪里?nginx机里还是php机里面,我认为php机里面是无法写网页的,结果两边都要有网页的目录和网页都在/usr/local/nginx/html里面
代理机的nginx用户的uid和gid需不需要和php机一样?(通过修改/etc/passwd和/etc/group)
两边机器的uid、gid不需要一样呀
验证一下代理机和php机网页内容到底哪一个是真的?还是都为真才可以?
只用看php机的网页即可,这个网页是写在/usr/local/nginx/html里面的,不用装nginx,直接去创建目录和网页即可
韩惠的本机上yum安装了httpd和php,但是为什么不能访问.php的网站?
验证编译安装的apache能不能访问.php的网站?
编译安装的apache去访问.php网站就会显示源代码(不开启php服务、没设置支持php)
编译安装的apache去访问.php网站就会显示源代码(开启php服务、没设置支持php)
编译安装的apache去访问.php网站就会显示源代码或不停刷新后出现空白页(不开启php服务、设置支持php)
编译安装的apache去访问.php网站就会显示源代码或不停刷新后出现空白页(开启php服务、设置支持php)
验证yum安装的apache能不能访问.php的网站?
yum安装的apache去访问.php网站就会显示源代码或不停刷新后出现空白页(不开启php服务、没设置支持php)
yum安装的apache去访问.php网站就会显示源代码或不停刷新后出现空白页(开启php服务、没设置支持php)
yum安装的apache去访问.php网站就会显示源代码或不停刷新后出现空白页(不开启php服务、设置支持php)
yum安装的apache去访问.php网站就会显示源代码或不停刷新后出现空白页(开启php服务、设置支持php)
验证nginx能不能访问.php的网站?
nginx去访问.php网站就会出现下载的页面(不开启php服务、没设置支持php)
nginx去访问.php网站就会出现下载的页面(开启php服务、没设置支持php)
nginx去访问.php网站就会出现下载的页面(不开启php服务、设置支持php)
nginx去访问.php网站就会出现下载的页面(开启php服务、设置支持php)
nginx去访问.php网站就会出现php的信息(开启php服务、设置支持php、主配置文件开启65~71现成的fastcgi并修改69行的/scripts为/usr/local/nginx/html)必须同时满足3个条件
得出一个结论:访问.php的网站需要用编译的apache,这个编译需要些具体的模块参数(请见qq农场的编译apache),并且qq农场不需要开启php服务;访问.php的网站或者需要用nginx,并且要开启php服务配置文件,并开启65~71现成的fastcgi并修改69行的/scripts为/usr/local/nginx/html
# 安装个人博客(全部分离安装:3台虚拟机分别安装mysql、nginx、php5.6.30)
# 执行顺序1,mysql机:安装好mysql,已有脚本
# mysql脚本、mysql安装
# 首先在新的最小化的虚拟机里面配置yum源
# 拷贝mysql-5.6.22.tar.gz压缩包到那个虚拟机里,解压后进入那个目录执行以下脚本
yum install-y cmake
echo -e"\033[32;1mcmake安装成功~\033[0m"
useradd -M-s /sbin/nologin mysql
echo -e"\033[32;1m创建数据库库mysql非系统用户成功~\033[0m"
mkdir -p/mysql/data
echo -e"\033[32;1m创建数据库目录/mysql/data成功~\033[0m"
chownmysql.mysql /mysql -R
echo -e"\033[32;1m递归修改/mysql目录的所有者和所属组成功~\033[0m"
yum install-y gcc*
echo -e"\033[32;1m安装gcc成功~\033[0m"
yum installncurses-devel -y
echo -e"\033[32;1m安装ncurses-devel成功~\033[0m"
yum installopenssl-devel -y
echo -e"\033[32;1m安装openssl-devel成功~\033[0m"
# yuminstall -y cmake gcc* ncurses-devel openssl-devel要安装这么多东西
cmake .-DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mysql/data-DDEFAULT_CHARSET=utf8 -DEXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8_general_ci-DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1-DWITH_INNOBASE_STORAGE_ENGINE=1
echo -e"\033[32;1m使用cmake安装数据库成功~\033[0m"
make&& make install
echo -e"\033[32;1m编译和编译安装成功~\033[0m"
sed -i'1!d;1a\datadir=/mysql/data' /etc/my.cnf
echo -e"\033[32;1m修改/etc/my.cnf的数据目录成功~\033[0m"
yum install-y perl-Data-Dumper
echo -e"\033[32;1m安装模块perl-Data-Dumper成功~\033[0m"
/usr/local/mysql/scripts/mysql_install_db--user=mysql --group=mysql --basedir=/usr/local/mysql --datadir=/mysql/data
echo -e"\033[32;1m数据库初始化成功~\033[0m"
/usr/local/mysql/support-files/mysql.serverstart
echo -e"\033[32;1m开启数据库服务成功~\033[0m"
ln -s/usr/local/mysql/bin/* /usr/bin
echo -e"\033[32;1m制作软链接成功~\033[0m"
# 创建数据库、授权用户
read -p"请输入php机的ip:" phpjiIP
/usr/local/mysql/support-files/mysql.serverstart
mysql -e"create database wordpress;"
# 如果不知道授权ip给谁就写'%'所有机子都能用这个用户访问这个数据库
mysql -e"grant all on wordpress.* to wordpress@'%' identified by '123';"
mysql -e"flush privileges;"
echo "已经成功授权给wordpress用户,密码是123"
# 执行顺序2,nginx机:安装好nginx,已有脚本
# nginx安装
# nginx简介:和httpd、apache一样都是网页服务
# 拷贝压缩包nginx-1.10.3.tar.gz解压并进入那个目录
useradd -M-s /sbin/nologin -r nginx
yum install-y gcc* pcre-devel zlib-devel
./configure--user=nginx --group=nginx --with-http_stub_status_module
make&& make install
ln -s/usr/local/nginx/sbin/nginx /usr/bin
echo "已经成功安装nginx并将命令作为了软链接可以直接用nginx启动80端口了,目录是在/usr/local/nginx里面"
# 修改配置文件user nginx,支持.php网页,指向php机ip,并设置脚本位置
read -p"请输入php机的ip:" phpjiIP
sed -i -r -e'2c\user nginx;' -e '45c\\t index index.html index.htm index.php;' -e '65,71 s@#@@' -e '67 s#127.0.0.1#'$phpjiIP'#'-e '69 s#/scripts#/usr/local/nginx/html#' /usr/local/nginx/conf/nginx.conf
# 启动服务
/usr/local/nginx/sbin/nginx
# 执行顺序3,php机,安装好php5.6.30,脚本见下面
# 将php-5.6.30.tar.gz包和wordpress-4.5.3-zh_CN.tar.gz包拷贝到当前目录,都不需要解压
mkdir -p/usr/local/nginx/html/
tar xzfwordpress-4.5.3-zh_CN.tar.gz -C /usr/local/nginx/html/
tar xzfphp-5.6.30.tar.gz
cdphp-5.6.30
yum install-y libxml2-devel libpng-devel
./configure--prefix=/usr/local/php5.6.30 --with-gd --with-zlib --with-mysqli=mysqlnd--with-config-file-path=/usr/local/php5.6.30 --enable-mbstring --enable-fpm
make&& make install
# 复制改名配置文件、修改配置文件
phpjiIP=`ifconfigens33 | grep netmask | tr -s " " | cut -d " " -f3 | cut -d"." -f1,2,3,4`
cp/usr/local/php5.6.30/etc/php-fpm.conf.default/usr/local/php5.6.30/etc/php-fpm.conf
sed -i -r -e'149 s#nobody#nginx#' -e '150 s#nobody#nginx#' -e '164 s#127.0.0.1#'$phpjiIP'#'/usr/local/php5.6.30/etc/php-fpm.conf
# 发现开启服务的时候报错ERROR: [pool www] cannotget uid for user 'nginx'
# 说明没有创建php机配置文件指定的那个nginx用户:id nginx检查有没有这个用户
useradd -M-s /sbin/nologin nginx
/usr/local/php5.6.30/sbin/php-fpm
echo "浏览器输入nginx机ip/wordpress"
echo "数据库名wordpress,用户名wordpress,密码123,数据库主机ip,表前缀wp_"
echo "提交,复制信息,然后在php机里面操作,vim/usr/local/nginx/html/wordpress/wp-config.php 粘贴,安装"
echo "站点标题:hello用户名:admin密码:admin确认使用 电子邮件:lbx@lbx.com安装"
echo"发现404是因为跳转到了目录,而他自己不会自动寻找index.php页面,需要自己手动输入才行"