轻量化Tiny Core Linux硬盘安装nginx+php+mysql

7,103次阅读
一条评论

Tiny Core Linux 是一个轻量化的Linux系统,最新的12.0版本图形界面只有 26 MB,由于设计得极端精简,甚至安装完整操作系统的应用程序都没有被包含在内(不过需要的话可以从 Tiny Core 的软件仓库下载)。

本系统在安装完ngnix+php+mysql后,整个VM虚拟机镜像文件,才不到70M,真正是小巧玲珑,这也正是使用这个系统的魅力所在。

一、硬盘安装

  1. 可以从官网:http://www.tinycorelinux.net/ 下载所需要的ISO镜像文件,本次使用的是v12.0的32位版本。
  2. 使用Vware创建一个新的虚拟机,创建时内存可适应调大一些,因为Tiny Core Linux是加载到内存中运行的,内存太小可能在安装mysql等软件后造成运行失败。虚拟机硬盘需要改为IDE模式(SCSI模式不能支持硬盘安装)。
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql
  3. 开启虚拟机进入桌面系统,点击下方的Apps图标,会提示首次运行是否选择最快的镜像,我们可以点击“Yes",软件将自动检测最快的软件仓库镜像,国内一般会检测到mriior.163.com网易源。
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql
    进入软件仓库后,点击“Apps“---“Cloud(Remote)"---“Browse“后,输入tc-install后按回车键搜索,在找到的列表中选择“tc-insatll-GUI.tcz"并安装。
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql
    其中的参数:vga=788 为 800*600 分辨率的桌面,如果用 vga=791 则开启 1024*768 分辨率的桌面。如果不想让系统自动登录,可以加上noautologin vga=788,然后安装进入系统后,可以使用 sudo passwd tc与 sudo passwd root来修改密码,最后需要在 /opt/.filelist 文件中加入 etc/passwd 与 etc/shadow,用于持久化密码相关文件。这样处理后,进入系统将会停留在登录界面,如果使用账号 tc 登录,就会进图形界面,如果使用 root 登录,则会进入命令行。
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql
  4. 关机后,硬盘的安装已经完成,我们可以将虚拟机中的CD光驱直接删除,然后重新启动从硬盘加载运行到桌面。

二、Nginx安装与配置

  1. 打开桌面上的Apps图标,需要重新运行最快的软件源检测,之后搜索nginx并安装,就可以将nginx软件安装到硬盘中。
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql
  2. 设置相关配置文件:打开桌面最右边图标,终端Terminal后, 输入以下命令,用于进入相应文件夹,并复制配置文件。
    cd /usr/local/etc/nginx/
    sudo cp original/nginx.conf.default nginx.conf
    sudo cp original/fastcgi_params.default fastcgi_params
    sudo cp original/mime.types.default mime.types
    sudo mkdir /usr/local/html
    sudo cp /usr/local/lib/nginx/html/index.html /usr/local/html
    

    复制好配置文件后,我们可以尝试启动nginx服务,使用命令:

    sudo /usr/local/etc/init.d/nginx start

    但是系统提示:
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql

    可以看到服务启动失败,我们需要改动一下nginx.conf文件,将access_log日志文件关闭或重新设置路径。运行命令:

    sudo vi /usr/local/etc/nginx/nginx.conf

    使用 vi 编辑器,在http段中,加入 access_log off;来关闭日志文件,也可以用下方命令自动替换。
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql

    sudo sed -i "s/#access_log /access_log off; #access_log /g" /usr/local/etc/nginx/nginx.conf

    修改完毕后,再使用sudo /usr/local/etc/init.d/nginx start启动服务,应该就可以正常启动了,我们可以使用 ifconfig 查看 虚拟机的 IP 地址,在本机中使用浏览器查看。
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql

    打开浏览器,使用 IP 地址浏览,可以看到nginx的欢迎网页,说明nginx已经正常工作了。

  3. 持久化nginx的配置与网页:因为Tiny Core Linux是加载到内存运行的,如果我们不做其它配置,当你重启你的虚拟时后,你会发现所有的nginx配置文件与网页都不见了。我们可以在/opt/.filetool.list文件中,将需要持久化的文件或文件夹加入到该文件中,在关闭系统时,Tiny Core Linux会自动保存这些文件,下次启动时再加载。
    echo "usr/local/etc/nginx/nginx.conf" >> /opt/.filetool.lst
    echo "usr/local/etc/nginx/mime.types" >> /opt/.filetool.lst
    echo "usr/local/etc/nginx/fastcgi_params" >> /opt/.filetool.lst
    echo "usr/local/html" >> /opt/.filetool.lst
    
  4. 开机自动启动nginx服务:Tiny Core Linux的开机自启动脚本为/opt/bootlocal.sh,我们只要在该脚本中加入nginx的启动命令即可。
    sudo vi /opt/bootlocal.sh

    轻量化Tiny Core Linux硬盘安装nginx+php+mysql

    sudo /usr/local/etc/init.d/nginx start

    保存文件后,再重启虚拟机,nginx将会自动启动了。

三、PHP 的安装与配置

  1. 打开桌面上的Apps图标,选择“Apps”---“Cloud(Remote)”---“Browse”后,搜索“php”,可以找到PHP-7.4与PHP-8.0,我们使用7.4版,分别安装以下安装包。
    php-7.4-cli.tcz
    php-7.4-ext.tcz
    php-7.4-fpm.tcz
    以下插件也需要安装
    libxml2.tcz
    libffi.tcz
    pcre2.tcz
    

    轻量化Tiny Core Linux硬盘安装nginx+php+mysql

     

  2. 设置相关配置文件:打开桌面最右边图标,终端Terminal后, 输入以下命令,用于进入相应文件夹,并复制配置文件。
    sudo cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
    sudo cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf
    sudo cp /usr/local/etc/php7/php.ini-sample* /usr/local/etc/php7/php.ini
    

    尝试使用命令:sudo /usr/local/etc/init.d/php-fpm start 启动PHP-FPM服务,发现还有两外错误,一是php中默认的hash.so模块加载失败,二是用户组nobody没找到。

    sudo /usr/local/etc/init.d/php-fpm start

    轻量化Tiny Core Linux硬盘安装nginx+php+mysql

    打开php.ini文件,找到hash扩展,禁用它,其它需要用到的扩展可以启用,然后保存文件,也可以使用下方命令行直接替换处理。

    sudo vi /usr/local/etc/php7/php.ini

    轻量化Tiny Core Linux硬盘安装nginx+php+mysql

    sudo sed -i "s/extension=hash/;extension=hash/g" /usr/local/etc/php7/php.ini
    sudo sed -i "s/;extension=mysql/extension=mysql/g" /usr/local/etc/php7/php.ini
    sudo sed -i "s/;extension=pdo_mysql/extension=pdo_mysql/g" /usr/local/etc/php7/php.ini
    

    系统中没有 nobody 这个组,我们可以直接在 /etc/group 文件最后加上一个组,然后保存文件并把 /etc/group 文件加入到持久化列表中。

    echo "nobody:x:65534:" >> /etc/group
    echo "etc/group" >> /opt/.filetool.lst
    

    最后再使用命令:sudo /usr/local/etc/init.d/php-fpm start 启动PHP-FPM服务,发现已经可以正常启动了。

  3. 持久化php的配置与自启动PHP-FPM服务
    echo "usr/local/etc/php7/php.ini" >> /opt/.filetool.lst
    echo "usr/local/etc/php-fpm.d/www.conf" >> /opt/.filetool.lst
    echo "usr/local/etc/php-fpm.conf" >> /opt/.filetool.lst
    

    编辑自动启文件 /opt/bootlocal.sh,加入启动PHP-FPM的命令:sudo /usr/local/etc/init.d/php-fpm start

    sudo vi /opt/bootlocal.sh

    轻量化Tiny Core Linux硬盘安装nginx+php+mysql

    sudo /usr/local/etc/init.d/php-fpm start

配置 nginx 文件,用于支持 php 文件,先在 html 根目录中创建一个 index.php 文件,内容为: <? phpinfo(); ?>

sudo chmod 777 /usr/local/html
echo "" >> /usr/local/html/index.php

然后,编辑 nginx.conf 文件,添加 php 的支持代码,最后保存文件

sudo vi /usr/local/etc/nginx/nginx.conf

轻量化Tiny Core Linux硬盘安装nginx+php+mysql

location ~ \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/local/html$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}

也可以使用以下命令行直接替换好相应的内容:

sudo sed -i "s/index.html index.htm/index.php index.html index.htm/g" /usr/local/etc/nginx/nginx.conf
sudo sed -i "s/#error_page/location ~ \.php\$ {\n include fastcgi_params;\n fastcgi_param SCRIPT_FILENAME \/usr\/local\/html\$fastcgi_script_name;\n fastcgi_pass 127.0.0.1:9000;\n }\n #error_page/g" /usr/local/etc/nginx/nginx.conf

修改好文件后,运行命令让 nginx  重新加载配置文件

sudo /usr/local/etc/init.d/nginx reload

然后在本机浏览器中,查看网页效果,如果出现了 phpinfo() 的界面,说明 php 文件已经正常启用。
轻量化Tiny Core Linux硬盘安装nginx+php+mysql

四、数据库mysql的安装

  1. 在Tiny Core Linux新的版本中,已经弃用mysql数据库,转而启用了mariadb数据库,打开桌面上的Apps图标,之后搜索mariadb可以找到10.4与10.5两个版本,可以将mariadb-10.5软件安装到硬盘中,同时安装一下liblz4.tcz 与 pcre2tcz 软件包。
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql

    mariadb-10.5.tcz
    liblz4.tcz
    pcre2.tcz
    
  2. 初始化数据库:我们将默认的数据库存放在 /home/tc/mysql/data 文件夹中,所以先创建相应的文件夹,再使用mysql_install_db来生成初始化的数据库信息。
    sudo mkdir /auth_pam_tool_dir
    sudo /usr/local/mysql/scripts/mysql_install_db --user=root --basedir=/usr/local/mysql --datadir=/home/tc/mysql/data
    sudo rm -r /auth_pam_tool_dir
    

    如果是Tiny Core Linux v10或v11版本中,初始化时可能会碰到错误提示:
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql

    可以按提示先创建一个 /auth_pam_tool_dir 文件夹,然后再初始化数据库信息,之后再删除该文件夹:

    sudo mkdir /auth_pam_tool_dir
    sudo /usr/local/mysql/scripts/mysql_install_db --user=root --basedir=/usr/local/mysql --datadir=/home/tc/mysql/data
    sudo rm -r /auth_pam_tool_dir
    
  3. 编写 my.cnf 文件,设置好数据库的配置参数:
    先删除原来的 my.cnf 文件

    sudo rm /usr/local/etc/mysql/my.cnf
    sudo vi /usr/local/etc/mysql/my.cnf
    

    然后将新的文件内容输入到文件中,这儿使用了比较简单的 my.cnf 文件,更详细文件可以自己整理。

    [mysqld]
    bind-address=0.0.0.0
    port=3306
    user=root
    basedir=/usr/local/mysql
    datadir=/home/tc/mysql/data
    socket=/var/run/mysql.sock
    log-error=/home/tc/mysql/data/mysql.err
    pid-file=/var/run/mysql.pid
    character_set_server=utf8mb4
    symbolic-links=0
    innodb_log_file_size = 5M

    将 my.cnf 加入持久化:

    echo "usr/local/etc/mysql/my.cnf" >> /opt/.filetool.lst

     

  4.  启动 mysql 服务,可以使用服务方式:
    sudo /usr/local/etc/init.d/mysql start

    如果不编写 my.cnf 文件,也可以直接使用命令行方式启动数据库:

    sudo /usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql --datadir=/home/tc/mysql/data --pid-file=/var/run/mysql.pid  --socket=/var/run/mysql.sock  --innodb_log_file_size=5M   --port=3306  --user=root &

    启动后,可以使用 netstat -l 查看监听端口的情况,能看到mysql或3306端口已经在监听状态,就说明服务启动成功了。
    轻量化Tiny Core Linux硬盘安装nginx+php+mysql

     

  5. 开机自启动数据库,将启动的命令行,加入到  /opt/bootlocal.sh,然后保存。
    sudo vi /opt/bootlocal.sh

    轻量化Tiny Core Linux硬盘安装nginx+php+mysql

     

  6. 修改数据库root密码,首次登录我们可以设置一下密码,使用下面命令登录时,需要输入新设置的 root 密码:
    sudo /usr/local/mysql/bin/mysql -uroot -p

    轻量化Tiny Core Linux硬盘安装nginx+php+mysql

    之后,我们可以根据情况在命令行中创建需要的数据库等操作了。

五、数据持久化的问题

  1. 在上面的安装过程中,我们发现我们的文件大都存放在 /home,/usr/local 等文件夹中,其实这些文件夹都是被 Tiny Core Linux 加载到内存中的,所以当文件不多的时候问题还不大,如果文件增加后,特别是网站文件与数据库文件容量增大后,就会大量占用内存,会造成内存不足而出现不同的问题。所以我们需要考虑将网站与数据库直接存放在硬盘而不是内存中。在Tiny Core Linux中,第一个硬盘会挂载到 /mnt/sda1 ,我们可以直接将网站与数据库的文件夹存放在这个下面,这样就不会占用内存空间了。
  2. 网站文件夹迁移到硬盘:
    sudo cp -r /usr/local/html /mnt/sda1
    sudo chmod 777 /mnt/sda1/html
    sudo rm -r /usr/local/html

    修改 config.conf 文件,将网站主目录改到 /mnt/sda1/html

    sudo vi /usr/local/etc/nginx/nginx.conf

    轻量化Tiny Core Linux硬盘安装nginx+php+mysql
    保存文件后,再使用 sudo /usr/local/etc/init.d/nginx start 启动服务,就可以将网站从硬盘加载。

  3. 数据库迁移到硬盘中:
    sudo cp -r /home/tc/mysql/data /mnt/sda1
    sudo rm -r /home/tc/mysql

    修改开机自启动文件中的数据库路径:

    sudo vi /opt/bootlocal.sh

    轻量化Tiny Core Linux硬盘安装nginx+php+mysql

    修改后保存文件。

  4. 在 /opt/.filetool.lst 文件中,去除原来用于持久化的 /usr/local/html 的内容:
    sudo vi /opt/.filetool.lst

    轻量化Tiny Core Linux硬盘安装nginx+php+mysql

    删除后,保存文件,如果不删除的话,重启服务器会提示错误信息。

  5. 如果是全新安装的话,可以在上面安装过程中,网页与数据库直接使用新的 /mnt/sda1/ 中的路径,这样就可以直接将数据放在硬盘,同时网站持久化中 echo "usr/local/html" >> /opt/.filetool.lst 的这一条命令也不再需要执行。
正文完
 0
评论(一条评论)
验证码
ivan
2023-03-19 20:59:25 回复

你这基本功扎实

     韩国首尔首尔韩国电信