提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言一、apache相关(httpd)二、PHP相关问题1.调用php时返回5002.html内嵌入php代码时apache不识别
四、almalinux下sendmail的发件问题1.sendmail没生成log2.sendmail发送失败
碎碎念和某些小问题linuxPHPSendMail防火墙
前言
在VM Ware 的AlmaLinux-9虚拟机上搭建 Apache + php8 + mysql8 + php发送邮件遇到很多问题。
安装almalinux-9的步骤就不说了,网上一大堆,我选择的是dvd版本,比较大,VM Ware默认给700M内存,记得调高内存大小,否则安装系统都安不了。 apache安装过程中没有遇到问题,需要注意,在almalinux-9中 它叫httpd而不是apache
另外如果有配置文件和我的路径不一样的,可以通过命令查找
sudo find / -name "改为文件名,文件全名可以去掉两端的引号"
提示:以下是本篇文章正文内容,下面案例可供参考
一、apache相关(httpd)
安装问题就不说了,直接用almalinux的dnf安装就行,网上一大堆。apache很省心,没遇到什么大问题,小问题一百度就有。 可以设置开机自启
sudo systemctl enable httpd
/etc/httpd/conf/httpd.conf是它的配置文件 当更改完php或者apache的配置后,执行下行命令进行重启
service httpd restart
文件的日志默认在 /var/log/httpd 下
二、PHP相关问题
1.调用php时返回500
这个可能和SELinux有关,执行命令,如果SELinux 状态为 Enforcing 或 Permissive,那么它可能是问题的原因
sestatus
这时候执行命令 ,可以临时设置通过
sudo setenforce 0
2.html内嵌入php代码时apache不识别
windows的apache就没这么多事,linux的apache问题是真多,网上很多答案全都没用。
有的改完后访问html后MIME解析出问题全给我下载,很多都是需要有libphp.so这个文件的。 但我php没手动安装(手动安装编译时各种依赖报错,扛不住了),用的是下载源里的8.0版本。
这里是我的改法,建议和我一样没libphp.so,网上方法试了不好用的来尝试一下
首先,找到php-fpm的配置文件,我的是/etc/php-fpm.d/www.conf,如果你不在可以搜一下www.conf 打开后,你会看到有一行;security.limit_extensions = .php .php3 .php4 .php5 .php7 将它改成下面的 去掉前面的 “;” 注释,在后面加入了.html 重启php-fpm服务sudo systemctl restart php-fpm
第二步,在/etc/httpd/conf.d/php.conf中 修改apache的php模块配置内容(网上有的人配置文件在/etc/httpd/conf.modules.d/下 如果我这的路径没有php.conf那你可以换篇文章了)
你可以在php.conf内看到
最后一步 很多攻略都用到了 在apache的**/etc/httpd/conf**下 加入AddType application/x-httpd-php .html 放到了mime_module 的IfMoudle内
重启apache服务器service httpd restart
四、almalinux下sendmail的发件问题
php.ini 是php的配置文件,我的在/etc/php.ini,里面有sendmail_path= 指定了当调用php自带的mail方法时发送邮件的位置。 由于我是直接用dnf安装的sendmail,路径和php配置文件中默认的路径时是吻合的,不需要更改。 如果你更改了sendmail位置记得更新php.ini。
sendmail的log文件默认在 /var/log/maillog
1.sendmail没生成log
打开 /etc/rsyslog.conf 找到 mail. -/var/log/maillog* 去掉后面 “-” 然后重启sendmailsudo systemctl restart rsyslog 就有了log
2.sendmail发送失败
参考php返回500 设置selinux
碎碎念和某些小问题
linux
linux下 我喜欢用gedit来编辑配置文件
gedit "你的文件"
有些配置文件权限不够,就会暴力的
sudo chmod 777 "文件"
这是个坏习惯,本地可以用用,放生产可别这么搞
当要查询某个文件时 可以使用
sudo find / -name "文件名"
其中 文件名可以正则来写, 记得加sudo,否则某些路径不让你查
备份配置文件很重要 sudo cp "xxx" "xxx_backup" 可别改坏了还没以前的文件
PHP
dnf 安装的PHP 如果你要PDO连接数据库的话,一定要查一下有没有,
php -m | grep pdo
没有的pdo_mysql 不是pdo_sqlite 不是pdo_sqlite 要用dnf额外下载pdo
sudo dnf install php-pdo_mysql
用dnf安装的php,在php.ini里没有 extensions, 不需要像windows和其他一样去掉注释运用模块,一般都靠你自己选择安装。
SendMail
用的虚拟机,本来想把发件邮箱换成自己的,不行。只能虚拟机自己发,很难受。
配置文件: /etc/mail/sendmail.mc 每次配置文件修改完后, 需要 sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 然后重启 sudo systemctl restart sendmail
当你重启sendmail失败时提示了权限相关内容,可以参考这一篇文章第二个方法 https://blog.csdn.net/ahyanwei/article/details/4410551
防火墙
navicat 链接 almalinux里的mysql时 要关闭防火墙,不让不让连
service firewalld stop
相关链接
发表评论