zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Shell centos7.4整合安装Nginx+Mysql+php脚本

mysqlPHP安装shellNginx 脚本 整合 CentOS7.4
2023-09-14 09:01:47 时间

这个脚本在centos.7.4环境下面使用 ,先安装nginx再安装php,因为php进程拥有者是nginx用户,所以先安装nginx再安装php,最后安装mysql。

[root@localhost ~]# cat test.sh 
#!/bin/bash
#mysql define variables
mysql_ver="5.5.60"
mysql_soft="mysql-${mysql_ver}.tar.gz"
mysql_dir="mysql-5.5.60"
mysql_url="http://mirrors.163.com/mysql/Downloads/MySQL-5.5/$mysql_soft"
mysql_create_sql="create database wordpress charset utf8;"
mysql_grant_sql="grant all on wordpress.* to 'wordpress'@'192.168.179.99' identified by '123456';"
mysql_exec="/usr/local/mysql55/bin/mysql"
 
#php define variables
php_ver="5.6.8"
php_dir="/usr/local/php"
php_url="http://mirrors.sohu.com/php/php-${php_ver}.tar.bz2" 
 
#nginx wordpress define variables
nginx_src="/usr/src"
nginx_dir="/usr/local/nginx"
nginx_url="http://nginx.org/download"
nginx_ver="1.16.0"
nginx_soft="nginx-${nginx_ver}.tar.gz"
nginx_args="--prefix=${nginx_dir} --user=nginx --group=nginx --with-http_stub_status_module"
 
word_press_name="blog.wordpress.com"
word_press_conf="blog.wordpress.com.conf"
word_press_dir="wordpress"
 
 
if [ $(id -u) -ne 0 ];then       ###只有root才可以运行该脚本
        echo -e "\033[32myou must run scripts as root Sorry exit!!"
        exit 1
fi
 
##########################
#换汤不换药和上面一样只能root用户可以运行该脚本,两种方法一样
#if [ `whoami` != "root" ];then
#echo " only root can run it"
#exit 1
#fi
 
 
function nginx_install(){
yum install gcc pcre pcre-devel zlib zlib-devel wget make openssl-devel net-tools -y
sed -i 's/enforcing/disabled/g' /etc/selinux/config
systemctl stop firewalld.service
 
cd $nginx_src
wget -c $nginx_url/$nginx_soft
tar xf $nginx_soft
cd nginx-${nginx_ver}
 
useradd -s /sbin/nologin nginx
./configure $nginx_args
 
make&&make install
$nginx_dir/sbin/nginx
ps -ef | grep nginx | grep -v grep
 
echo -e "\033[32m-----------------config Nginx vhost now------------------------------\033[0m"
sleep 3s
 
#config Nginx vhost 
cd $nginx_dir/conf
\cp nginx.conf nginx.conf.bak
\cp $nginx_src/nginx-${nginx_ver}/conf/nginx.conf $nginx_dir/conf
 
sed -i -e '/#/d' -e '/^$/d' -e '/server/,$d'  nginx.conf
echo -e "include /usr/local/nginx/conf/vhosts/*.conf; \n}" >>nginx.conf
 
tar -xf  $nginx_src/wordpress-4.9.4-zh_CN.tar.gz -C $nginx_dir/html
chown -R  nginx:nginx $nginx_dir/html/$word_press_dir
 
mkdir -p vhosts
cd vhosts
 
cat >$word_press_conf<<EOF
server {
        listen       80;
        server_name  $word_press_name;
        location / {
            root   html/$word_press_dir;
            index index.php index.html index.htm;
        }
        
	error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
       
	location ~ \.php$ {
	root html/wordpress;
	fastcgi_pass 127.0.0.1:9000;
	fastcgi_index index.php;
	fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
  }
}
EOF
 
 
$nginx_dir/sbin/nginx -t
$nginx_dir/sbin/nginx -s reload
echo -e "\033[32myou configure informations blow..............wordpress dir previelege............................\033[0m"
ls -ld $nginx_dir/html/$word_press_dir
echo "\033[32m................................nginx config ......................................\033[0m"
cat  $nginx_dir/conf/nginx.conf
echo -e "\033[32m................................virtue host config......................................\033[0m"
cat  $nginx_dir/conf/vhosts/$word_press_conf
 
}
 
 
 
function php_install(){
yum -y install gd curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel
cd /usr/src
wget -c $php_url 
tar -xf php-${php_ver}.tar.bz2
cd php-${php_ver}
 
 
./configure --prefix=${php_dir} \
--enable-fpm \
--enable-debug \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--enable-mbstring \
--with-curl \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-config-file-path=${php_dir}/etc \
--with-zlib-dir
 
make && make install 
 
\cp php.ini-development  $php_dir/etc/php.ini
\cp  $php_dir/etc/php-fpm.conf.default  $php_dir/etc/php-fpm.conf
 
sed -i '/^group/s/nobody/nginx/g' $php_dir/etc/php-fpm.conf 
sed -i '/^user/s/nobody/nginx/g' $php_dir/etc/php-fpm.conf 

egrep "^(user|group)"  $php_dir/etc/php-fpm.conf 
 
\cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
 chmod +x /etc/init.d/php-fpm
/etc/init.d/php-fpm start
 
if [ $? -ne 0 ];then
	echo -e "\033[32mconfigure failed please check!!!!\033[0m"
else
	echo -e "\033[32mconfigure successful \033[0m"
fi
 
ps -ef | grep php | grep -v grep
 
}
 
 
 
function mysql_install(){
yum install wget gcc c ncurses-devel libaio bison gcc-c++ git cmake ncurses-devel ncurses -y
setenforce 0
systemctl stop firewalld
 
cd /usr/src
wget -c  $mysql_url
tar xf $mysql_soft
cd $mysql_dir
 
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql55/ \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/usr/local/mysql55/ \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_DEBUG=0
 
make && make install
 
\cp /usr/src/$mysql_dir/support-files/my-large.cnf /usr/local/mysql55/my.cnf
\cp /usr/src/$mysql_dir/support-files/mysql.server /etc/init.d/mysqld
chmod o+x /etc/init.d/mysqld
useradd -s /bin/nologin mysql
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
/usr/local/mysql55/scripts/mysql_install_db --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql55
 
cat >/etc/my.cnf <<EOF
[mysqld]
datadir=/data/mysql
socket=/tmp/mysql.sock
symbolic-links=0
EOF
 
/etc/init.d/mysqld start
 
if [ $? -ne 0 ];then
        echo -e "\033[32mconfigure mysql failed please check!!!!\033[0m"
else
        echo -e "\033[32mconfigure mysql successful \033[0m"
        $mysql_exec -e "$mysql_create_sql"
 	$mysql_exec -e "$mysql_grant_sql"
	$mysql_exec -e "flush privileges;"
fi
 
ps -ef | grep mysql
}
 
 
PS3="Please select install Menu:"
select i in nginx_install php_install mysql_install quit
do
 
case $i in
nginx_install) 
	echo -e "\033[32mstart to install nginx and config wordpress,please wait.................\033[0m"
        sleep 3
        nginx_install
        break
        ;;
php_install)
        echo -e "\033[32mstart to install php,please wait.................\033[0m"
        sleep 3
        php_install
        break
        ;;      
mysql_install)
        echo -e "\033[32mstart to install mysql,create database and user ,please wait..................\033[0m"
        sleep 3
        mysql_install
        break
        ;;
*)
        echo -e "\033[32mPlease input right agrs exit!!\033[0m"
        break
        ;;
esac
 
done