Centos7搭建lamp,lnmp

主要以lamp(linux平台,apache服务,MySQL,PHP)为例,都是root权限进行操作哈

1.apache--1centos7

安装httpd服务

yum -y install httpd

yum-------包管理器

主要用来解决:下载、依赖关系、安装、卸载四种问题 . Linux系统中有一个yum软件服务器,上面有Linux需要的各种软件软件包,我们使用yum命令去云服务器下载我们所需要的软件,然后再本地进行安装。 yum是一个客户端软件,作用是帮助我们在远端服务器上下载对应的软件包,并解决我们在本地电脑上的一个安装问题。

在Linux下载软件:

源码编译安装:通过编译源代码,得到软件包----可自定制软件包,有点复杂

rpm安装:类似于windows中的安装包,下载下来之后直接安装。缺点是不能自己解决依赖。

yum安装:基于rpm安装,也就是在rpm上增加了自动解决依赖的功能。

httpd:

是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。通常,httpd不应该被直接调用,而应该在类Unix系统中由apachectl调用,在Windows中作为服务运行

开启apache服务

systemctl start httpd.service

将apache服务设置开机自启

systemctl enable httpd.service

然后就没了,可通过浏览器中访问虚拟机IP地址,检测apache是否安装成功

查看IP地址:

Windows上查看是ipconfig,Linux是ifconfig,linux还可以用ip addr(显示机器上的所有网卡)

如果不能出现此页面,可能是防火墙没关(关掉防火请可以简单的保证apache对外通讯)

service firewalld stop

总结此处的基本命令

systemctl start httpd.service#启动(start换成stop,restart分别为停止,重启) 
systemctl enable httpd.service#开机自启(enable换成disable开机不启动)
systemctl status httpd.service#查看http状态
systemctl start firewalld#开启防火墙(start换成stop,disable,status禁用,停止,查看状态)

2.PHP

安装PHP

yum -y install php

重启apache服务

systemctl restart httpd.service

3.MYSQL/mariadb

centos7.0后,系统默认使用mariadb代替mysql(MariaDB数据库管理系统是MySQL的一个分支),那就按mariadb呗(问就是他简单)

安装

yum -y install mariadb-server mariadb

开启MySQL服务

systemctl start mariadb.service

将MySQL服务设置成开机自启

systemctl enable mariadb.service

设置root账户密码

mysql_secure_installation

注意哈,刚开始是没有密码的,所以直接回车就行,然后都选y(即默认回车)

进行登录

mysql -uroot -p

4.PHP与MySQL连接

查询有关php的软件包

yum search php

安装php-mysql

yum -y install php-mysql

安装常用的PHP工具

yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel

到此就完成了

centos7完全卸载mariadb

当时设置用户名密码后,在选选项时,有几个填了no,再加上安装完成后,php文件centos7无法远程连接数据库,怀疑是选项当时没选好,所以就删了重下(但是后知后觉发现好像当时在)

查看mariadb组件安装了哪些东西

rpm -qa | grep Maria* 

开始卸载

#卸载数据库
yum -y remove mari*
#删除数据库文件
rm -rf /var/lib/mysql/*
#查看是否有残留
rpm -qa | grep Maria* 

在lamp框架下运行PHP文件

我们可以在根目录下/var/www/html/1.php(证明lamp环境搭建httpd发布目录默认在/var/www/html),先看下是否可以正常运行,内容如下

(远程连接数据库,如果连接成功,输出success!,反之则输出fail------测试了两个功能:既能执行PHP语句,又能判断是否能够远程连接数据库)

<?php 
$link = mysqli_connect('IP地址','用户名','数据库密码');
if($link)  echo "<h1>success!</h1>";
else  echo "false!";
mysqli_close;
?>

之后重启apache服务,浏览器进行访问,发现页面为空(一直加载不出来),怎么办嘞?

看了网上大佬的解答,说是要修改apache中http.conf文件,向 <ifModule mime_module> 其中加入

AddType application/x-httpd-php .php9(让apache把.php文件以php的形式解析)

(我的路径是/etc/httpd/conf/httpd.conf)加入之后,再(这一段可要可不要)

yum install mod_php

查看apache配置文件http.conf的位置

httpd -V

重启apache服务,刷新页面,发现有输出,但输出结果是fail,那就是远程连接数据库失败了呗

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;

root是登陆数据库的用户,123456为密码(其实我一开始就发现问题所在了,然后就试了这段代码,但一直给我是fail,我也蒙了,然后就疯狂找答案,没有解决,但改过了几天又试了几b发现奇迹般的ok了 )

嘿嘿嘿,那就搞完啦

lnmp---3centos7

如果是在原先lamp的环境下搭建就先停止apache服务 我是又重弄了个虚拟机

systemctl stop httpd.service

关闭SELINUX

将enforcing模式改为disabled

vi /etc/selinux/config

重启后,再getenforce命令查看selinux运行模式(要为disabled)

getenforce

1.nginx

作用

Nginx是一个开源且高性能、可靠的http web服务、代理服务

yum -y install nginx 

结果直接报错,人都傻了

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: mirrors.aliyun.com

* extras: mirrors.163.com

* updates: mirrors.aliyun.com

No package nginx available.

Error: Nothing to do

更换yum源

1.安装wget

yum -y install wget

wget: wget命令是Linux系统用于从Web下载文件的命令行工具 ,支持 HTTP、HTTPS及FTP协议下载文件,而且wget还提供了很多选项,例如下载多个文件、后台下载,使用代理等等,

wget [options] [url]
wget https://download.redis.io/releases/redis-6.0.8.tar.gz

2.备份默认源文件

进入yum.repos.d文件夹

cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.backup

3.下载yum源(阿里源)

wget http://mirrors.aliyun.com/repo/Centos-7.repo

4.清理旧包

yum clean all

5.把下载下来阿里repo文件设置成为默认源

mv Centos-7.repo CentOS-Base.repo

mv命令:

对文件或目录重新命名,或者将文件从一个目录转移到另一个目录

6.回到根目录

cd

7.安装epel

yum install epel-release.noarch

8.下载阿里开源镜像的epel源文件

wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo

9.生成源缓存并更新yum源

yum makecache
yum update

安装nginx

yum -y install nginx

修改配置文件

查看nginx安装目录(我的是\etc\nginx\nginx.conf)

whereis nginx
vi \etc\nginx\nginx.conf

#除下面提及的需要添加的配置信息外,其他配置保持默认值即可。
location / {
    #在location大括号内添加以下信息,配置网站被访问时的默认首页
    index index.php index.html index.htm;
}
#添加下列信息,配置Nginx通过fastcgi方式处理您的PHP请求
location ~ .php$ {
    root /usr/share/nginx/html;    #将/usr/share/nginx/html替换为您的网站根目录,本教程使用/usr/share/nginx/html作为网站根目录
    fastcgi_pass 127.0.0.1:9000;   #Nginx通过本机的9000端口将PHP请求转发给PHP-FPM进行处理
    fastcgi_index index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include fastcgi_params;   #Nginx调用fastcgi接口处理PHP请求
}   

在输入以下命令,检查配置是否成功,错误就在改错被

nginx -t -c /etc/nginx/nginx.conf

开启nginx服务

systemctl start nginx

然后我就一直报错:

Job for nginx.service failed because the control process exited with error code

1.配置文件出错-----输入任然报错

nginx -t -c /etc/nginx/nginx.conf

2.根据nginx服务状态判断报错原因

查看服务器状态

systemctl status nginx.service

我报出80端口failed

那就查看80端口被那些程序占用

netstat -nap | gre port(查看端口号port被哪一进程占用)
netstat -nap | grep 80

如果显示netstat:command not found

yum -y install net-tools

{grep : 全局正则表达式检索工具

grep "quail" /etc/passwd(查找/etc/passwd文件中是否存在quail用户信息)

}

破案了破案了

80端口被占用,因为没关apache服务(一开始关了,中间关过机),所以可以直接停止服务或者直接杀死进程

#杀死进程
kill -9 pid( 系统给这个进程下了一个 “必死” 的命令,不管这个进程当前正在处理什么任务(IO等等),都将强制结束  )
#kill:向进程发送信号,而不是直接杀死进程
#9号SIGKILL----->杀死信号

到这儿之后我再启就成功了

加入开机自启 : systemctl enable nginx

配置PHP

1.更新yum源:

1.添加epel源

yum install \
https://repo.ius.io/ius-release-el7.rpm \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

2.添加Webtatic源

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

2.安装php(注意是php70w 是0不是O)

yum -y install php70w-devel php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-pdo.x86_64 php70w-mysqlnd php70w-fpm php70w-opcache php70w-pecl-redis php70w-pecl-mongodb

4.启动PHP-FPM

systemctl start php-fpm
systemctl enable php-fpm

数据库

和lamp时完全一样

测试

新建1.php文件,本网站根目录为 /usr/share/nginx/html/

vi /usr/share/nginx/html/phpinfo.php

内容为:

<?php echo phpinfo(); ?>

ok好嘛,他又不行了,报错:Can't open file for writing

参考到网上博客给到的答案无(真的好牛)非两种情况:

**当前用户权限不足

**此文件可能跟正被其他程序或用户使用

但是root权限,文件才创建,然后: cd /var/www/html/nginx/发现目录不存在,那就逐一进入看有无报错,知道发现未知目录,然后mkdir创建就好

之后再查看一下,创建文件的内容----cat命令

然后浏览器访问就行

测试一下远程连接数据库,代码如下

<?php 
$link = mysqli_connect('IP地址','用户名','数据库密码');
if($link)  echo "<h1>hhhhhhhhhhhhh success</h1>";
else  echo "wwwwwwww false";
mysqli_close;
?>

然后浏览器访问

成功了 嘿嘿嘿(搭的很好再也不想搭了)

这种问题:

1.编辑文件时出现:

press enter or type command to continue

:q  退出
:q!    强制退出
:wq     保存退出
:w!     强制退出
:wq!    强制保存退出

2.命令

关机--->  shutdown now(立即关机)       shutdown -r now(立即重启)
修改密码---->passwd
删除文件----->rm -f  文件路径及文件名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值