主要以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 文件路径及文件名