LNMP一键安装问题
安装包介绍:
根据用户的需求,安装指定的软件。nginx默认安装在/usr/local/nginx,启动脚本在/usr/local/nginx/conf/nginx;php安装在/usr/local/php,启动脚本为/usr/local/php/sbin/php-fpm;mysql安装在/usr/local/mysql,启动脚本为/etc/init.d/mysqld。
将各个服务的安装脚本依次写为函数。脚本文件在lib文件夹内,并在不同的脚本文件中,在主函数install中先声明脚本文件,再根据需要调用相应的函数。安装包在src目录下。需要的nginx和php配置文件在conf目录下。
使用指南:./install.sh --mysql --nginx。即可安装mysql和nginx服务。
一:根据用户的需求不同,安装指定的软件。用什么方式处理?比如,install --nginx --mysql。则只安装nginx和mysql
处理方式:使用case+for循环解决
for (( i=1 ; i<=$VarNum ; i++ )) #VarNum=$#等于输入变量的个数。利用此进行循环。
do
case ${!i} in #取出i的数值后,在取出该数值对应的变量。与下面某一个匹配,就调用相应的函数。
--nginx) ins_nginx;;
--mysql) ins_mysql;;
--php)
ins_pecl
ins_apc
ins_php;;
--memcache) ins_memcache;;
*) helpme
exit;;
esac
done
二:安装mysql后,启动报错,
处理方式:根据源文件指示。应该在/etc/init.d/mysqld文件中修改两处即可
datadir=/data/mysql
basedir=/usr/local/mysql
指定mysql的数据存放路径和安装目录即可。
三:php与nginx的连接问题。nginx服务正常,php-fpm已经启动,却不能浏览php文件。
处理方式:在nginx.conf配置文件中,加上一下配置
location ~ \.php$ { #定位所有以php结尾的请求
root html;
fastcgi_pass 127.0.0.1:9000; #此地址和端口要和php-fpm的配置文件相同。
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME html$fastcgi_script_name; #注意这里,html是指定了php文件的路径,这里是相对路径。与静态页面在同一目录下。
include fastcgi_params;
}
四:mysql函数出现死循环,一直在调用安装mysql函数
处理方式: sed -i '/^PATH/s#&#:/usr/local/mysql/bin#' /root/.bash_profile
source /root/.bash_profile
注释掉这两行即可。
相关阅读: