LAMP 1

1. LAMP架构介绍

Apache 不能直接跟MySQL直接沟通,要通过PHP Moudule媒介

下图中,动态文件指比如密码的校验,网页论坛的更新,修改,会与MySQL交互。而静态文件是指网页上本有的一些图片

2. MySQL/MariaDB介绍

3. MySQL 安装

####安装时遇到的问题

& 初始化生成目录时提示需要安装相应依赖包

用命令 yum list |grep perl |grep -i dumper 安装依赖包,然后再进行初始化 (echo $? 命令来测试初始化是否成功)

&. 遇到提示如下

"InnoDB: ./ibdata1 can't be opened in read-write mode"

解决方案:

、usr/

####

指定配置文件所在路径

& 关basedir 和datadir的定义

& 遇到报错如下

Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist

解决方案:

重新初始化数据库即可

shell> /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data`

####开启与关闭mysqld

/etc/init.d/mysqld start && service mysqld start

kill all mysqld(建议,kill all 会暂时停止读写操作,把没有完成写入磁盘里去的数据,慢慢的写进去,直到写完成之后才会把进程杀死) && kill + PID; 同样不推荐 kill -9 会导致丢数据

mysyql 下有两个常用的引擎 innodb (类似于oracle,存储比较大),myisam(存储比较小)

4. 安装Mariadb

5. 安装Apache

###enable-so 是指支持动态扩展模块

enable-mods-shared=most 指的是支持绝大多数动态扩展模块

####在安装apr-util时候遇到如下问题

此类问题解决方案是安装expat

####在安装httpds时候遇到如下问题

解决方案安装相应(通常情况下安装的是-devel或-lib)

Details Steps:

1.

6. 安装PHP5

目前绝大多数企业都在使用5版本,因为好多企业对7版本不兼容

6.1 Detailed Step

6.1.1 下载PHP 包 并解压

wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2--2018-09-10 11:22:00-- http://cn2.php.net/distributions/php-5.6.32.tar.bz2

tar jxf php-5.6.32.tar.bz2

6.1.2 编译源码包

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif

&出现第一个报错

解决方案: 安装xml2包

&出现第二个报错

解决方案; 安装OpenSSL包

&第三个报错

解决方案:安装BZip2包

&报错四

解决方案:安装libjpeg

&报错五

解决方案:安装libpng

&报错六

解决方案;安装freetype

&报错七

解决方案:先安装epel扩展源再安装libmcrypt

6.1.3 编译成功

6.1.4. make && make install

6.1.5. cp php.ini-production /usr/local/php/etc/php.int

确保目录不为空

6.2 php内容

而核心的内容在此目录下

查看加载的模块有哪些

7. 安装PHP7

步骤同PHP5,编码稍作更改

./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php7/etc --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif

****

一台机器上可以同时拥有php5&7,但是需要用时要指定好,不要弄混。

修改方式---进入配置文件注释掉不需要的

vim /usr/local/apache2.4/conf/httpd.conf

8. Apache和PHP结合

虽然Apache之前调用了PHP作为了他的模块,但是还不确定是否能解析PHP,在此之前要编辑一下httpd的配置文件

****当遇到下图问题时,如何去排查(ip无法访问,报错403)

首先看cmd上是否能ping 的通ip

再看 80端口是否通

此时,就意味着telnet没有打开,在控制面板中打开telnet

同时,如果要windows去访问他,要确保iptables打开80 端口

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

8.1 Detailed step (iptables要确保开启80端口)

8.1.1 vim /usr/local/apache2.4/conf/httpd.conf

$serverName

将ServerName打开

&Require all denied >> require all granted(一共两行 都要确保是granted)

****/usr/local/apache2.4/bin/apachectl -t 命令可用来查看配置文件语法是否有错误

/usr/local/apache2.4/bin/apachectl graceful 重新加载配置文件

注意,每次编辑配置文件之前都要快照,同时编辑后要-t查看是否有语法错误

&增加一行php相关的配置 如果不增加php没法解析 (在AddType下面添加)

&增加一个索引页(搜索Index,末尾处添加index.php)

&进而验证apache是否支持解析php(增加一个文件是不需要重启php的)

vi /usr/local/apache2.4/htdocs/1.php

&解析成功

8.2 如果未加载PHP未能解析,检查一下几项

& /usr/local/apache2.4/bin/apachectl -M 检查模块是否加载

如果没有此模块,查看是否有以下文件

如果有文件却并没有显示模块加载,那边要检查一下配置文件是否加载libphp5,如果没有也是不能解析的

再继续检查 AddType是否有php这一行

猜你喜欢

转载自blog.csdn.net/nongfuchui/article/details/84757403