网上的教程真不靠谱,都是你抄抄我,我抄抄你的。有甚者更是直接复制粘贴,根本没有实践过。故记一次在新服务器上搭建lamp安装discuz的教程。#t250:
LAMP=Linux+Apache+MySQL+PHP
本次软件版本为:apache2.4+mysql5.5+php7
前期准备:关闭Selinux、下载好需要编译的软件包。
前期约定:小伙伴们要对linux有一定的操作经验;软件统一安装目录为:/usr/local/软件名。🧑🍳🧦💳☠👄
1.关闭selinux:
- vim /etc/sysconfig/selinux
复制代码
把 SELINUX=enforcing 改为 SELINUX=disabled
🧑🌾🩳📡🙄🖕
2.下载源码包
需要编译的软件包如下:(也可以到他们官网下载最新版本,下面的链接都是他们各自官网的下载地址。)
👩✈️💄⌨🤖👄
apache 2.4.23
- wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.23.tar.gz
复制代码
apr1.5.2
- wget http://mirrors.cnnic.cn/apache/apr/apr-1.5.2.tar.gz
复制代码
🤛🦼🫖♀🐯
apr-util1.5.4
- wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.5.4.tar.gz
复制代码
mysql5.5.52
👨🎨🥼🩸😒🦴
- wget http://101.110.118.70/downloads.mysql.com/archives/get/file/mysql-5.5.52.tar.gz
复制代码
jpegsrc v9a
- wget http://www.ijg.org/files/jpegsrc.v9a.tar.gz
复制代码
🧑🚀🎒⌨👻👂
php7.0.12
- wget http://cn2.php.net/distributions/php-7.0.12.tar.gz
复制代码
3.linux
🤝🏫🍌☯🦬 本处linux环境为centos6.5 x64。
4.安装apache
首先要安装编译工具
🧒👚🪜😳👃
其次安装apache依赖的库,(
能yum装的尽量yum装,避免不必要的麻烦。)
- yum -y install zlib-devel pcre-devel pcre
复制代码
再次依次编译apr和apr-util
👨🚒🩰🪓😒🤛
- tar -zxvf apr-1.5.2.tar.gz
复制代码
进入源码的目录执行:
- ./configure --prefix=/usr/local/apr/
复制代码
👄🌦🍊🅰🐒 没有报错的话
等待编译完成。#t255:
👂🎢🥩🚷🐯 apr-util编译也类似:
- tar -zxvf apr-util.1.5.4.tar.gz
复制代码
- ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/
复制代码
🧓🩳🔌😊👌
然后编译apache
- tar -zxvf apache2.4.23.tar.gz
复制代码
🤝🚐🌶❓🐅 编译参数:
- ./configure \
- --prefix=/usr/local/apache/ \
- --with-apr=/usr/local/apr/ \
- --with-apr-util=/usr/local/apr-util/ \
👂🌡🥄❌ - --enable-so \
- --enable-deflate=shared \
- --enable-expires=shared \
- --enable-rewrite=shared \
- --enable-static-support
复制代码 👳🛍🪗😅🖐
编译完成后,把apache添加到系统服务,并命名为“httpd”
- cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
复制代码
👌🚂🥭🆗🐅
添加自启
- chkconfig httpd on
- chkconfig --level 35 httpd on
复制代码
👎🚈🍭🆚🪰 可能出现的问题:service httpd does not support chkconfig
解决办法:打开 vi /etc/rc.d/init.d/httpd 添加(#!/bin/sh下面)
- #chkconfig: 2345 10 90
- #description: Activates/Deactivates Apache Web Server
复制代码
👏🚤🥭©🐂
加上上面这两行就可以,#必须有
其中:2345是设为要启动的运行级别,10是启动优先级,90是杀死进程的优先级,谁优先谁先挂的意思。
可能出现的问题:Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
👌🦼🫑🚷🐅
解决办法:在httpd.conf中把ServerName 改为域名或IP
最后访问域名或IP出现 It works!表示安装成功!
👆🎢🌰🆗🐕
5.安装mysql
首先还是解决依赖的问题
- yum -y install make cmake bison-devel ncurses-devel
复制代码
💅⛪🍽✡🦌
其次编译参数为
- cmake \
- -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
- -DMYSQL_DATADIR=/data/mysqldb/ \
👑🪥🤡✍
- -DSYSCONFIGDIR=/usr/local/mysql/etc/ \
- -DWITH_INNOBASE_STORAGE_ENGINE=1 \
- -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
- -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
- -DWITH_PARTITION_STORAGE_ENGINE=1 \👩✈️🧢🪝🤑✋
- -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
- -DMYSQL_TCP_PORT=3306 \
- -DENABLED_LOCAL_INFILE=1 \
- -DEXTRA_CHARSETS=all \
- -DDEFAULT_CHARSET=utf8 \
✊⛵🎂ℹ🐤
- -DDEFAULT_COLLATION=utf8_general_ci \
- -DMYSQL_USER=mysql
复制代码
其中 /data/mysqldb 是mysql的数据目录。
🤝🌦🦀🐋 没有报错的话
再次编译完成后:
👀🌞🍇🆗🐅
复制配置文件到/etc下的my.cnf(support-files下有几个配置文件,看自己服务器配置选择合适的)
- cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
复制代码
添加到系统服务
- cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
复制代码 🧒🩳🪥🤡👂
添加mysql用户和mysql组
- groupadd mysql
- useradd -r -g mysql mysql
复制代码
👨🦱👞📬😷✌
初始化数据库
- /usr/local/mysql/scripts/mysql_install_db \
- --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldb
复制代码
修改mysql的文件权限
🤟🚂🍼⁉🐺
- chown -R mysql:mysql /usr/local/mysql
- chown -R mysql:mysql /data/mysqldb
复制代码
/data/mysqldb是你的数据目录
🧑🌾👓🪦😆👂
然后试着启动一下 mysql,如果成功了就继续往下。
运行安全脚本修改root密码,同时可禁止root远程连接,移除test数据库和匿名用户
- /usr/local/mysql/bin/mysql_secure_installation
复制代码
✊🎢🥛↔🦄 然后添加开机自启
- chkconfig mysqld on
- chkconfig --level 345 mysqld on
复制代码
最后启动mysql
👀🗽🥚♾🦄
创建数据库过程略.#t227:
🦷🛩🧊🆎🐙
6.安装php
首先 把 jpegsrc 安装一下,程序处理图片的时候需要。
🖕🌡🍧📳🦊
编译参数:
- ./configure --prefix=/usr/local/jpeg --enable-shared --enable-static
复制代码
👮♂️🎒🗑🤪👄
其次安装依赖包
- yum -y install php-mcrypt php-mysql libmcrypt libmcrypt-devel autoconf freetype gd libmcrypt libpng libpng-devel libjpeg libjpeg-devel libxml2 libxml2-devel zlib curl curl-devel php-mysql freetype freetype-devel
复制代码
👃🗽🍒⁉🐶
再次编译参数
- ./configure \
- --prefix=/usr/local/php/ \
- --with-apxs2=/usr/local/apache/bin/apxs \
👨🦱🧢⚒🤑👌
- --enable-mbstring \
- --with-curl \
- --with-gd \
- --with-jpeg-dir=/usr/lib64 \
- --with-zlib \
👍🧳🍼🚭🐋 - --enable-fpm \
- --enable-mysqlnd \
- --with-pdo-mysql=mysqlnd \
- --with-config-file-path=/usr/local/php/etc/ \
- --with-mysqli=mysqlnd \
✊🏦🍟🈷🦄 - --with-mysql-sock=/tmp/mysqld.sock
复制代码
然后发现没有报错的话
🧑⚕️👖📮🤪👁
编译完成后,复制php配置文件到php的目录
- cp php.ini-development /usr/local/php/etc/php.ini
复制代码
修改apache的配置文件,让它去解析php文件
- vim /usr/local/apache/conf/httpd.conf
复制代码
👏🎠🥑🪰
加上:
- Addtype application/x-httpd-php .php .phtml
复制代码
最后重启apache,在根目录下写上(激动人心的时刻!#t229:)
🧑🌾🦺📏🤩🤟
👨🚒🩳💊😆✌
到此lamp环境已经搭建完成~撒花#m267:
👨🎨🖥😈👌