自动安装lanmp脚本

此博客为转载内容,原链接为https://www.cnblogs.com/legenidongma/p/10800558.html,标签涉及PHP、数据库和运维等信息技术领域。
#!/bin/bash
#auto install LANMP
#by author ale 
#2019-4-30 20:39:04
#Httpd define path variable
H_FILES=httpd-2.4.38.tar.gz
H_FILES_DIR=httpd-2.4.38
H_URL=http://mirrors.cnnic.cn/apache/httpd/
H_PREFIX=/usr/local/apache


#Mysql define path variable
M_FILES=mysql-5.5.20.tar.gz
M_FILES_DIR=mysql-5.5.20
M_PREFIX=/usr/local/mysql
M_YUM="cmake  ncurses-devel ncurses pcre pcre-devel"

#Php define path variable
P_FILES=php-5.6.10.tar.gz
P_FILES_DIR=php-5.6.10
P_URL=http://ftp.ntu.edu.tw/php/distributions/
P_PREFIX=/usr/local/php
P_YUM="gd   curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel"

#Nginx define path variable
N_FILES=nginx-1.12.2.tar.gz
N_FILES_DIR=nginx-1.12.2
N_URL=http://nginx.org/download/
N_PREFIX=/usr/local/nginx
N_YUM="openssl openssl-devel"

print_menu(){
    echo -e "\033[32mPlease Select Install Menu follow:\033[0m"
    echo -e "\033[32m1)编译安装Apache服务\033[0m"
    echo -e "\033[32m2)编译安装NGINX服务\033[0m"
    echo -e "\033[32m3)编译安装MYSQL服务\033[0m"
    echo -e "\033[32m4)编译安装PHP服务\033[0m"
    echo -e "\033[32m5)配置index.php并启动LAMP服务\033[0m"
    echo -e "\033[32m6)整合LNMP\033[0m"
    exit 
}

apache_install(){
#Install httpd web server
if [[ "$1" -eq "1" ]];then
    wget -c $H_URL/$H_FILES;tar -xzf $H_FILES;cd $H_FILES_DIR;./configure --prefix=$H_PREFIX --enable-so --enable-cgi --enable-rewrite --enable-module=most --enable-mpms-shared=all 
    if [ $? -eq  0 ];then
        make &&make install
        cp $H_PREFIX/bin/apachectl /etc/init.d/httpd
        chmod o+x /etc/init.d/httpd
    fi
fi
}

nginx_install(){
#Install nginx web server
if [[ "$1" -eq "2" ]];then
        yum install -y $N_YUM
        wget -c $N_URL/$N_FILES;tar -xzf $N_FILES;cd $N_FILES_DIR;useradd www;./configure --prefix=$N_PREFIX --user=www --group=w
ww --with-http_stub_status_module --with-http_ssl_module
        make && make install
fi
}


mysql_install(){
#Install mysql server
if [[ "$1" == "3" ]];then
    yum install -y $M_YUM
    tar -xf $M_FILES;cd $M_FILES_DIR;cmake  . -DCMAKE_INSTALL_PREFIX=$M_PREFIX \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-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 -j4 && make install -j4
cp support-files/my-small.cnf  /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
useradd mysql;$M_PREFIX/scripts/mysql_install_db --basedir=$M_PREFIX --datadir=/data/mysql --user=mysql
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
fi
}


php_install(){
#Install php server
if [[ "$1" -eq "4" ]];then
    yum -y install $P_YUM
    wget -c $P_URL/$P_FILES;tar -xzf $P_FILES;cd $P_FILES_DIR;./configure --prefix=$P_PREFIX --enable-fpm  --with-pdo-mysql  --enable-debug --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir   --enable-mbstring --with-curl   --with-mysql=$M_PREFIX  --with-config-file-path=$P_PREFIX/etc --with-apxs2=$H_PREFIX/bin/apxs     
    if [ $? -eq 0 ];then
        make -j4 && make install -j4
        cp php.ini-development $P_PREFIX/etc/php.ini
        cp  $P_PREFIX/etc/php-fpm.conf.default  $P_PREFIX/etc/php-fpm.conf
        $M_PREFIX/sbin/php-fpm 
        cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
        chmod o+x /etc/init.d/php-fpm
        echo -e "\033[32mThe Php Server Install Success\033[0m"
    else
        echo -e "\033[32mThe Php Server Install Failed,Please check..\033[0m"
    fi
fi
}
    
lamp_config(){
if [[ "$1" = "5" ]];then
    sed -i '/DirectoryIndex/s/index.html/index.php index.html/g' $H_PREFIX/conf/httpd.conf 
    $H_PREFIX/bin/apachectl restart    
    echo "AddType     application/x-httpd-php .php" >>$H_PREFIX/conf/httpd.conf
    IP=`ifconfig ens33|grep "broadcast"|awk '{print $2}'|cut -d: -f2`
    echo "You can access http://$IP/"
    cat >$H_PREFIX/htdocs/index.php <<EOF
    <?php
    phpinfo();
    ?>
EOF
fi
}

lnmp_config(){
if [[ "$1" = "6" ]];then
    \cp nginx.conf.swp $N_PREFIX/conf/nginx.conf 
    cat >$N_PREFIX/html/index.php <<EOF
        <?php
        phpinfo();
        ?>
EOF
    $N_PREFIX/sbin/nginx
    /etc/init.d/php-fpm restart
    /etc/init.d/mysqld restart
    systemctl stop firewalld
    setenforce 0
fi
}

case $1 in

    1)
        apache_install $1
    ;;
    2)
        nginx_install $1
    ;;
    3)
        mysql_install $1
    ;;
    4)
        php_install $1
    ;;
    5)
        lamp_config $1
    ;;
    6)
        lnmp_config $1
    ;;
    *)
        print_menu
    ;;
esac
nginx.conf.swp 内容如下
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
         location  ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

 

 

转载于:https://www.cnblogs.com/legenidongma/p/10800558.html

### 在 CentOS 上安装和配置 LANMP 环境 #### 1. 更新系统并准备环境 在开始之前,建议先更新系统的软件包列表以确保使用的是最新版本的工具和依赖项。 ```bash yum update -y ``` 为了提高下载速度,可以替换默认的 YUM 源为阿里云镜像源[^1]。 --- #### 2. 安装 Apache (HTTPD) 通过 YUM 软件包管理器安装 Apache HTTP 服务器: ```bash yum -y install httpd ``` 编辑 Apache 的配置文件 `/etc/httpd/conf/httpd.conf` 来调整监听端口或其他参数。例如,如果希望更改默认端口号到 `8080`,可以在配置文件中找到以下行并将端口修改为所需值[^3]: ```apache Listen 80 ServerName www.example.com:80 ``` 将其更改为: ```apache Listen 8080 ServerName www.example.com:8080 ``` 启动 Apache 并设置开机自启: ```bash systemctl start httpd systemctl enable httpd ``` 还可以根据需求安装一些常用的 Apache 扩展模块,比如 SSL 支持或 Perl 集成: ```bash yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql ``` --- #### 3. 安装 MariaDB 或 MySQL 数据库 MariaDB 是 MySQL 的社区分支,在 CentOS 中通常作为替代品提供支持。可以通过以下命令安装数据库服务[^2]: ```bash yum -y install mariadb-server mariadb mysql-devel ``` 启动 MariaDB 服务并启用自动启动: ```bash systemctl start mariadb systemctl enable mariadb ``` 运行安全脚本初始化数据库密码和其他安全性选项: ```bash mysql_secure_installation ``` 此过程会提示您输入 root 密码、删除匿名用户以及其他增强安全性的操作。 注意:如果遇到无法连接本地 MySQL 服务器的问题(如错误消息提到找不到套接字路径),可能是因为服务未正常启动。此时应检查日志文件或重新尝试启动服务[^2]。 --- #### 4. 安装 PHP 及其扩展 PHP 是处理动态网页的核心组件之一。以下是安装方法及其常用扩展的方式: ```bash yum -y install php php-mysqlnd php-fpm php-gd php-xml php-mbstring ``` 验证已安装PHP 版本号: ```bash php -v ``` 重启 Apache 让新加载的 PHP 功能生效: ```bash systemctl restart httpd ``` 创建测试页面来确认 PHP 是否工作正常。例如,在 Web 根目录下新建一个名为 `info.php` 的文件: ```php <?php phpinfo(); ?> ``` 访问该地址(假设 IP 地址为 `192.168.1.100` 和端口为 `8080`): ``` http://192.168.1.100:8080/info.php ``` --- #### 5. 设置网站访问权限 为了让外部客户端能够成功请求您的站点内容,需适当放宽防火墙规则以及调整 Apache 的访问控制策略[^4]: ##### (1)开放必要的网络端口 允许来自外界对指定端口(此处设定了 `8080`)的数据流量通行: ```bash firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload ``` ##### (2)修改 Apache 文件夹读写权限 进入虚拟主机定义部分所在的区域,将指令设定如下所示以便于授权所有者完全操控权能的同时也给予访客浏览许可权利: ```apache <Directory "/var/www/html"> AllowOverride All Require all granted </Directory> ``` 最后保存变更后的文档再执行同步刷新动作使改动即时反映出来即完成全部部署流程! --- #### 总结 至此已经完成了基于 Linux(CentOS), Apache, Mysql(MariaDB)/Php 构建而成的一整套 LAMP 堆栈架构搭建教程介绍说明环节结束啦!接下来您可以着手开发属于自己的项目应用啦😊。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值