什么是LAMP
L:linux
A:apache
P:php
M:mysql
linux提供操作系统的支持,为A,P,M提供环境。相比于windows,linux对于开发人员自由度更高,且更安全,所以使用linux系统。windows本质上仍然是按照windows提供的模板(比如创建文件必须得右键等)进行操作。
apache为搭建的网站提供静态页面请求的处理。
php为搭建的网站提供动态页面请求的处理,处理动态请求需要与数据库进行交互。
mysql存储持久化数据,状态信息。
安装LAMP
安装Apache
tar xf apr-1.6.2.tar.gz 先把apache的依赖包和软件包解压一下
tar xf apr-util-1.6.0.tar.gz
tar xf httpd-2.4.29.tar.bz2
mv apr-1.6.2 httpd-2.4.29/srclib/apr 把依赖包移动到srclib并改名,让依赖包和apache能够一起编译
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
yum -y install gcc gcc-c++ make pcre-devel expat-devel perl >>/dev/null
#yum安装一下c、c++编译器、make源代码编译器、pcre函数库、perl编译器和两个开发包
cd httpd-2.4.29
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \ #prefix指定安装路径
--enable-so \ #开启扩展功能
--enable-rewrite \ #启用网页地址重写
--enable-charset-lite \ #启动字符集支持
--enable-cgi #启动CGI程序,开启网站的扩展应用访问能力
make && make install #编译安装一下
ln -s /usr/local/httpd/conf/httpd.conf /etc/ #创建软连接,放入环境变量就可以直接输入命令开启
把/usr/local/httpd/bin/下所有东西创建软连接放入/usr/local/bin/
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd #把启动文件放进init.d并改名httpd
vim /etc/init.d/httpd #init.d是一个用于service管理的目录
在httpd文件的开头#!/bin/bash下写入
# chkconfig: 35 85 21 #35级别自动运行 第85个启动 第21个关闭
# description: Apache is a World Wide Web server
# Apache control script designed to allow an easy command line interface #最好加在这段的上面,不然可能会出错
chkconfig --add httpd #将httpd加入到service管理器
vim /usr/local/httpd/conf/httpd.conf #进入配置文件修改
Listen 192.168.214.214:80 #大概在52行,改成自己ip地址的80端口
--197行--取消注释,修改
ServerName www.shiki.com:80 #在197行下面按照197行的模板写成自己设定的域名和端口
service httpd start
netstat -anpt | grep 80
最后验证一下
安装mysql
yum -y install ncurses ncurses-devel bison cmake autoconf >>/dev/null
#yum安装一下字符终端下图形互动功能的动态库ncurses和他的开发包,bison语法分析器,cmake编译器,自动适配各种系统的软件autoconf
tar xzvf mysql-5.6.26.tar.gz -C /opt #解压软件包至/opt目录下
cd /opt/mysql-5.6.26
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \ #指定默认使用中文字符集编码
-DDEFAULT_COLLATION=utf8_general_ci \ #指定默认使用的字符集校对规则
-DEXTRA_CHARSETS=all \ #指定支持其他字符集
-DSYSCONFIDIR=/etc \ #指定一下配置文件的位置
-DMYSQL_DATADIR=/home/mysql/ \ #指定数据文件位置
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock #指定通讯文件是什么,这个文件会在数据库启动的时候生成
make && make install
cp support-files/my-default.cnf /etc/my.cnf #将配置文件模板覆盖掉配置文件
cp support-files/mysql.server /etc/init.d/mysqld #将启动文件放进init.d并改名
chmod 755 /etc/init.d/mysqld #为了安全,设置一下权限
chkconfig --add /etc/init.d/mysqld #让系统识别一下启动文件
chkconfig mysqld --level 35 on #设置开机自启
如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile #将这个目录放入环境变量
source /etc/profile #重载一下环境变量
/usr/local/mysql/scripts/mysql_install_db \ #对数据库进行初始化
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql
vim /etc/init.d/mysqld #进入文件
basedir=/usr/local/mysql #在46和47行写成这样
datadir=/home/mysql
service mysqld start
netstat -anpt | grep 3306
查看后,发现3306端口已经开启
通过mysql命令进入mysql库,查看已有的数据库
安装php
yum -y install gd libpng libpng-devel libxml2-devel libjpeg-devel
#安装一下图像处理库gd,png格式图片的库libpng,解析xml标记语言的库libxml2-devel,jpeg格式图片的库libjpeg-devel
tar xjvf php-5.6.11.tar.bz2 -C /opt
cd /opt/php-5.6.11
./configure \
--prefix=/usr/local/php5 \
--with-gd \ #激活gd库
--with-zlib \ #激活zlib数据压缩功能
--with-apxs2=/usr/local/httpd/bin/apxs \ #指定与httpd对接的程序文件的位置
--with-mysql=/usr/local/mysql \ #关联一下数据库
--with-config-file-path=/usr/local/php5 \ #指定一下配置文件
--enable-mbstring
make && make install
我在安装php时出现make: *** [libphp5.la] Error 1
解决方法:yum -y install libtool libtool-ltdl-devel
对/usr/local/php5/bin/下所有文件创建软连接放入/usr/local/bin/
vim /etc/httpd.conf #修改Apache配置文件让Apache支持PHP
DirectoryIndex index.html index.php #在256行添加index.php
AddType application/x-httpd-php .php #在394行下方插入一下内容,让Apache可以支持.php的网页文件
AddType application/x-httpd-php-source .phps
vim /usr/local/httpd/htdocs/index.php #在htdocs目录下创建php文件,并写入
<?php
phpinfo();
?>
service httpd start
全部做成功后访问192.168.214.214/index.php