在龙芯3A-5000电脑上建设LAMP架构
一 什么是LAMP架构
LAMP是国际上最流行的一种网站建设架构,它是以下四个英文单词的首写字母缩写:
Linux+Apache+Mysql+PHP(有时也指python甚至perl)。Linux是操作系统,Apache是WWW服务器,现在也流行选择Nginx,那样的化LAMP架构就转变为LNMP架构。MySQL是数据库服务器,PHP和python都是用于网络编程的程序语言。
和Java/J2EE 架构相比, LAMP 具有 Web 资源丰富、轻量、快速开发等特点;与微软的.NET 架构相比,LAMP具有通用、跨平台、高性能、低价格的优势。因此 LAMP 无论是性能、质量还是价格都是互联网上搭建网站的首选平台。
二 操作系统的选择
目前龙芯电脑的操作系统主要有:
1 Loongnix系统,这是官方标配系统,当前最新版本Loongnix-20.3,可能是基于Debian还是Fedora定制的。这个系统很好用,安装好之后所有常用的软件都有了,但是问题是集成的软件版本太老,比如内核还是4.19(当前是6.2.9),PHP还是7.3,官方连7.4和8.0都已经不再支持。有些重要软件没有,比如我想用的QGIS。
2 UOS系统,也是很好的系统,基本每种架构的CPU都有对应版本,目前声势浩大,有一统国产桌面操作系统的架势,应该是深度OS的商业版本。集成的软件版本太老同上,另外,它是商业软件,如何付费我还没搞清楚。
3 社区OS系统,目前所知的有大佬们做的Archlinux,CLFS等系统,我这里以Archlinux-2023.4.1版本为例。
顺便说一声,我很期待不久将发布的Debian-12能有LoongArch版本,因为早年我曾经使用Debian,相对熟悉一些。
三 操作系统的安装:
这个不重复,参照这篇就可以了:
https://bbs.loongarch.org/d/88-archlinux
有几个要注意的地方:
1 固件要在pre-beta9 及以上,否则要先行升级固件版本。
2 开机时按F2,在固件设置里设置为新世界。
3 分区的时候,记得第一个分区设置为EFI类型。
四 建设LAMP环境:
1 apache
安装:#pacman -S apache
启动:#systemctl restart httpd
设置为开机启动: #systemctl enable httpd
配置文件的位置: /etc/httpd/conf/httpd.conf
缺省的主目录: /srv/http
缺省的日志文件存放目录: /var/log/httpd/
查看运行状态: #systemctl status httpd
2 php
php是世界上最好的编程语言。
安装:#pacman -S php php-apache
PHP的配置文件: /etc/php/php.ini
编写一个测试文件:
#vi /srv/http/test.php
内容简单就一行,如下:
<?php phpinfo(); ?>
这时在客户端用浏览器打开测试文件是看不到内容的,说明php解析不成功,还需要修改配置文件/etc/httpd/conf/httpd.conf,加入这行:
LoadModule php_module modules/libphp.so
AddHandler php-script php
Include conf/extra/php_module.conf
这样还不行,缺省情况下archlinux安装的apache开启的是线程化的MPM运行模式,而PHP模块确实采用线程不安全方式编译的,所以要么重新编译PHP,要么改变apache的MPM运行模式,否则无法重启apache。我这里选择相对简单的第二种方法。
在配置文件种找到以下三行:
#LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
确认第一和第三行被注释,而启用第二行,即prefork模式。
并且重启apache服务器以便刚才的修改生效:
#systemctl restart httpd
现在你可以在客户端的浏览器看到熟悉的php解释页面:
3 MySQL
安装: #pacman -S mysql(实际上安装的是在mariadb和percona中二选一)
启动数据库服务器: #systemctl start mysqld
电脑开机启动数据库服务器: #systemctl enable mysqld
查看运行状态 #systemctl status mysqld
如果启动MySQL遇到如下错误(一般都会遇到,涉及到读写权限问题):
Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
那么,必须:
#rm -rf /var/lib/mysql/*
# mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
再次启动就可以了。
为了提高MySQL的安全性,最后运行:
#mysql_secure_installation
至少,你要修改数据库超级用户的密码吧。
4 phpMyAdmin
我很多MySQL命令都记不住,所以实际使用的时候都要借助phpMyAdmin。
安装: #pacman -S phpmyadmin
激活必需的三个php模块,编辑PHP配置文件/etc/php/php.ini,找到Dynamic Extensions部分,将以下三个模块前面的注释符号去掉然后重启apache:
mysqli,pdo_mysql,iconv
现在可以在客户端浏览器中再次刷新前面提到的PHP测试页面,确认以上三个模块被激活。
将以下内容加入到apache配置文件,并再次重启apache:
Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
<Directory "/usr/share/webapps/phpMyAdmin">
DirectoryIndex index.php
AllowOverride All
Options FollowSymlinks
Require all granted
</Directory>
现在在浏览器里输入网址:
http://your_ip/phpmyadmin