Manjaro 搭建内网博客

折腾了大半天,终于在本机搭了一个功能完备的服务器。
当然要记录一下啊。
不过这是搭建成功后的总结,可能有地方遗漏,有问题欢迎提出来。

静态页面博客

这个用 hexo 和 jekyll 直接就可以做到,本地跑 server 不成问题,
比较 easy ,不赘述,详见 hexo 或者 jekyll 的官网。

动态页面博客

动态页面要能跑 php ,有数据库。

apache

这里用 apache(httpd) 搭建服务器:

1
sudo pacman -S apache2

执行 sudo httpd 后打开 localhost ,就有一个东西了(虽然是空的)。
在 /srv/http/ 下新建 index.html 随便写点东西,是可以显示的。
路径具体查看 httpd -S

启动服务:

1
sudo systemctl start httpd

php

安装 php ( manjaro18.x 预装了 php7.x ,但还是要一些其他的东西):

1
sudo pacman -S php php-apache php-fpm

这时 apache 还是不支持 php 的,需要在配置里加上几行。
打开 /etc/httpd/conf/httpd.conf ,加入:

1
2
3
4
LoadModule php7_module modules/libphp7.so
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php
DirectoryIndex index.php index.html index.htm

开启 php 服务:

1
sudo systemctl start php-fpm

编写 index.php 试试,也可以运行了。 如果出了问题,找到配置里的

1
LoadModule mpm_event_module modules/mod_mpm_event.so

改成(应该就在下面被注释了)

1
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

mysql

我跑 mysql 的服务会卡死,不知道为什么,
所以我用 mariadb (mysql 的一个衍生似乎是)替代。

安装:

1
sudo pacman -S mariadb mariadb-client

初始化(注册一个账号):

1
2
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
sudo mysql_secure_installation

启动服务:

1
sudo systemctl start mysqld

试试能不能登上:

1
mysql -u<用户名> -p

让 php 支持 mysql 的调用,在 /etc/php/php.ini 找到 ;extension=mysqli 把分号去掉就行了。

使用 wordpress

Typecho 用 php7.2 似乎安装会出问题,
还是建议用 wordpress ,更加成熟,
安装方式在 wordpress 官网上把包下下来解压到 /srv/http/ ,
回了正常运行,需要改变 /srv/http 的权限,让 wordpress 能够对其做出修改。
这里不赘述,嫌麻烦可以 chmod 777 -R /srv/http

然后进入 localhost 按照步骤来就行了。