Home >Operation and Maintenance >Linux Operation and Maintenance >How to use LAMP+WordPress's one-click installation script

How to use LAMP+WordPress's one-click installation script

坏嘻嘻
坏嘻嘻Original
2018-09-15 15:46:042452browse

本篇文章给大家带来的内容是关于如何使用LAMP+WordPress的一键安装脚本,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

#!/bin/bash
# Description: This is a one-click script to compile the installation LAMP (PHP in FastCGI working mode)

# Environment: centos7.5, apr-1.6.3.tar.gz, apr-util-1.6.1.tar.gz, httpd-2.4.34.tar.bz2, php-7.1.18.tar.bz2, mariadb-10.2.16-linux-x86_64.tar.gz, wordpress-4.9.4-zh_CN
.tar.gz 

# Download the above packages and place them in the /app/ 

# Ensure that yum warehouses are set up, including local CDS and epel

# All the services after compilation and installation are placed in /app/lamp/
echo -e '\033[1;5;31mBEGIN \033[0m'
mkdir -p /app/lamp

# Install the required development kit groups
echo -e '\033[1;31mInstall the group tools \033[0m'
yum groupinstall -y 'development tools'
echo -e '\033[1;31mFinish Installing the group tools \033[0m'

# Create the function to compile and install HTTPD

httpd () {
# Unzip and move folders
        cd /app
        tar xf apr-1.6.3.tar.gz
        tar xf apr-util-1.6.1.tar.gz
        tar xf httpd-2.4.34.tar.bz2
        mv apr-1.6.3 httpd-2.4.34/srclib/apr
    mv apr-util-1.6.1 httpd-2.4.34/srclib/apr-util
# Create the user and install the packages required for compilation
        useradd -r -s /sbin/nologin apache
        yum install -y pcre-devel openssl-devel expat-devel
# Start compiling and installing
        cd httpd-2.4.34/
        ./configure --prefix=/app/lamp/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --enable-modules=most --enable-mpms-share
d=all --with-mpm=prefork --with-included-apr
        make && make install
# Modify configuration file
        cd /app/lamp/httpd24/conf
        sed -i '/^User/s/daemon/apache/' httpd.conf
        sed -i '/^Group/s/daemon/apache/' httpd.conf
        sed -i 's@^#Load.∗proxy.soLoad.∗proxy.so$@\1@' httpd.conf
        sed -i 's@^#Load.∗fcgi.soLoad.∗fcgi.so$@\1@' httpd.conf
        sed -i 's@[]\+D.∗[]\+D.∗@\1index.php @' httpd.conf
        echo "Include conf/extra/httpd-php.conf" >> httpd.conf
        cd extra/
        cat > httpd-php.conf <<-EOF
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
        ProxyRequests Off
        ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/lamp/httpd24/htdocs/$1
        EOF
        cd
}

# Create the function to install mysql with binary package

mariadb () {

# Create the user
        useradd -r -s /sbin/nologin mysql
# Unzip the file and create a soft connection and modify permissions
        cd /app
        tar xf mariadb-10.2.16-linux-x86_64.tar.gz  -C /usr/local/
        cd /usr/local/
        ln -s mariadb-10.2.16-linux-x86_64/ mysql
        chown -R mysql.mysql mysql/
# Initialize the database and revise the configuration file
        mkdir /app/lamp/mysql
        chown -R mysql.mysql /app/lamp/mysql
        cd /usr/local/mysql/
        scripts/mysql_install_db  --datadir=/app/lamp/mysql --user=mysql
        mkdir /etc/mysql/
        cp support-files/my-huge.cnf  /etc/mysql/my.cnf
        sed -i &#39;/^\[mysqld]/adatadir=/app/lamp/mysql&#39; /etc/mysql/my.cnf
# Preparation for startup script 
        cp support-files/mysql.server  /etc/init.d/mysqld
        cd
}

# Create the function to compile and install PHP

php () {
# Install the packages required for compilation
        yum install -y libxml2-devel bzip2-devel libmcrypt-devel
# Unzip and start compiling and installing
        cd /app
        tar xf php-7.1.18.tar.bz2 &> /dev/null
        cd php-7.1.18/
        ./configure --prefix=/app/lamp/php --enable-mysqlnd --with-mysqli=mysqlnd --with-openssl --with-pdo-mysql=mysqlnd --enable-mbstring --with-freetype-dir --with-
jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php
.d --enable-maintainer-zts --disable-fileinfo
        make && make install
# Modify some necessary files
        cp php.ini-production /etc/php.ini
        cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
        chmod +x /etc/init.d/php-fpm
        cd /app/lamp/php/etc
        cp php-fpm.conf.default php-fpm.conf
        cp php-fpm.d/www.conf.default php-fpm.d/www.conf
        cd
}

Main () {
        echo -e &#39;\033[1;31mStart installing httpd \033[0m&#39;
        httpd
        echo -e &#39;\033[1;31mHTTPD is finished  \033[0m&#39;
        echo -e &#39;\033[1;31mStart installing MariaDB \033[0m&#39;
        mariadb
        echo -e &#39;\033[1;31mMariaDB is finished  \033[0m&#39;
        echo -e &#39;\033[1;31mStart installing PHP \033[0m&#39;
        php
        echo -e &#39;\033[1;31mPHP is finished \033[0m&#39;
}
Main

# Add the binary to the path variable

echo &#39;PATH=/app/lamp/php/bin:/app/lamp/httpd24/bin:/usr/local/mysql/bin:$PATH&#39; > /etc/profile.d/lamp.sh
source /etc/profile.d/lamp.sh

# Start the service

apachectl
service mysqld start
service php-fpm start

echo -e &#39;\033[1;31mAll services are running \033[0m&#39;

# Building a blog site

echo -e &#39;\033[1;31mStart building the blog site \033[0m&#39;

mysql -e "create database wpdb;grant all on wpdb.* to wpuser@&#39;localhost&#39; identified by &#39;centos&#39;"
cd /app
tar xf wordpress-4.9.4-zh_CN.tar.gz
cp -r wordpress/* /app/lamp/httpd24/htdocs/
cd /app/lamp/httpd24/htdocs/
mv wp-config-sample.php wp-config.php
sed -i &#39;/DB_NAME/s/database_name_here/wpdb/&#39; wp-config.php
sed -i &#39;/DB_USER/s/username_here/wpuser/&#39; wp-config.php
sed -i &#39;/DB_PASSWORD/s/password_here/centos/&#39; wp-config.php

echo -e &#39;\033[1;31mBlog is set up  \033[0m&#39;

echo -e &#39;\033[1;5;31mEND \033[0m&#39;
# END

The above is the detailed content of How to use LAMP+WordPress's one-click installation script. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn