标签: AWS

  • AWS云服务器Bitnami套件安装WordPress更新php版本到7.4.33 图文教程

    AWS云服务器Bitnami套件安装WordPress更新php版本到7.4.33 图文教程

    今日有小伙伴找到老季,说想要把aws云ec2服务器WordPress网站环境从php7.3升级到php7.4的版本,我们这里也记录一下这个的更新过程。

    服务器情况

    无法连接aws的ec2服务器

    登录上aws也经历了一些波折,发现登录服务器,老是无法连接。要不就是卡住了一样。之后就没有反应了。

    要么就是提示:

    ———-ERROR——- Unable to start command: invalid uid and gid

    毫无办法,按理来说aws不可能会有这种,控制台都无法连接ec2服务器的问题。之后我们终于查到了问题,由于系统安装的是ubuntu,所以我们用终端连接时,需要使用ubuntu用户进行连接,具体如下图所示:

    Run As : ubuntu

    这就是重点了,如果是centos、debian等发型版用root即可。

    之后重新使用”会话管理器”菜单就可以连接了。

    已安装的环境bitnami套件

    登录上服务器,发现服务器使用的是/opt/bitnami/ctlscript.sh命令,所以断定是bitnami的套件,而官网并没有给出详细的套件,这里我们只能自己编译了。

    编译php7.4.33

    安装必要的环境包

    请先直接切换到root用户,然后使用如下命令进行批量下载并安装必要的包

    sudo su   //直接回车
    wget https://www.php.net/distributions/php-7.4.33.tar.gz
    tar -xvf php-7.4.33.tar.gz
    apt-get update
    apt-get install -y libxml2-dev libssl-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libfreetype6-dev zlib1g-dev libzip-dev libsqlite3-dev libonig-dev

    No package ‘libxml-2.0’ found

    hecking for libxml-2.0 >= 2.7.6… no configure: error: Package requirements (libxml-2.0 >= 2.7.6) were not met: No package ‘libxml-2.0’ found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables LIBXML_CFLAGS and LIBXML_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.

    但我们已经安装了libxml而且是最新的版本,在终端中指定一下路径:

    export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig
    

    No package ‘sqlite3’ found

    configure: error: Package requirements (sqlite3 > 3.7.4) were not met: No package ‘sqlite3’ found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables SQLITE_CFLAGS and SQLITE_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.

    apt-get install libsqlite3-dev

    No package ‘oniguruma’ found

    configure: error: Package requirements (oniguruma) were not met: No package ‘oniguruma’ found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables ONIG_CFLAGS and ONIG_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.

    apt-get install libonig-dev

    配置PHP

    cd php-7.4.33
    ./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --enable-mbstring --with-curl --with-openssl --with-zlib --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --enable-opcache --enable-xml --enable-intl --with-gd --with-jpeg --with-freetype --with-mysqli --with-pdo-mysql

    Your PHP installation appears to be missing the MySQL extension which is required by WordPress.

    一开始出现了Your PHP installation appears to be missing the MySQL extension which is required by WordPress.错误,是我们没有带上mysql的扩展--with-mysqli --with-pdo-mysql,以上编译时,我们已经带上了。

    编译和安装PHP7.4.33

    make
    sudo make install
    

    配置php.ini

    sudo cp php.ini-development /usr/local/php7/etc/php.ini

    编辑 /usr/local/php7/etc/php.ini

    找到mysqli.default_socketpdo_mysql.default_socket的配置区,将其设置成/opt/bitnami/mysql/tmp/mysql.sock

    mysqli.default_socket = "/opt/bitnami/mysql/tmp/mysql.sock"
    
    pdo_mysql.default_socket = "/opt/bitnami/mysql/tmp/mysql.sock"
    

    如不配置则会出现:Error establishing a database connection

    导致WordPress的运行php环境找不到mysql的链接方法

    配置php-fpm.conf

    编辑/usr/local/php7/etc/php-fpm.conf文件

    sudo vi /usr/local/php7/etc/php-fpm.conf

    内容如下:

    [global]
    pid = /run/php-fpm.pid
    error_log = /var/log/php-fpm/error.log
    [my_pool]
    user = daemon
    group = daemon
    ;listen = 127.0.0.1:9000
    listen = /var/run/php-fpm.sock
    listen.owner = daemon
    listen.group = daemon
    pm = dynamic
    pm.start_servers = 5
    pm.min_spare_servers = 2
    pm.max_spare_servers = 8
    pm.max_children = 12

    这里我们使用的用户及用户组都是daemon跟bitnami套件中apache设置的是一样的权限。

    检查一下/var/run/这个目录是否存在,不存在则需要创建。

    启动php-fpm

    /usr/local/php7/sbin/php-fpm

    可以通过 ps aux | grep php-fpm 命令查看我们的php是否允许成功

    如果有/usr/local/php7/etc/php-fpm.conf的配置在运行说明已成功。

    配置apache2

    修改/opt/bitnami/apache2/conf/php-fpm-apache.conf,修改前记得备份!!!

    修改配置前请确保:/usr/local/php7/etc/php-fpm.conf的php-fpm已在运行。

    /opt/bitnami/apache2/conf/php-fpm-apache.conf改为以下内容

    <IfDefine USE_PHP_FPM>
      <Proxy "unix:/var/run/php-fpm.sock|fcgi://www-fpm" timeout=300>
      </Proxy>
      <FilesMatch \.php$>
        <If "-f %{REQUEST_FILENAME}">
          SetHandler "proxy:fcgi://www-fpm"
        </If>
      </FilesMatch>
    </IfDefine>

    此处Proxy需要跟上面的php-fpm.conf配置的listen一致,否则apache2无法链接到php-fpm。

    重启bitnami的apache服务

    /opt/bitnami/ctlscript.sh restart apache
    

    检查php版本是否成功

    我们在网站目录中新建一个info.php内容如下

    <?php phpinfo();
    

    之后通过网址打开 http://域名/info.php 检查一下,php版本是否是7.4.33

    错误日志

    我们的配置过程中出现了一些未知错误,还好有日志可以查询,下面我们指一下日志位置,有需要的小伙伴可能会用到。

    tail -n 20 /opt/bitnami/apache2/logs/error_log

    至此,教程结束,可能不算十分完整,但大概过程就是这样的。请小伙伴们指正~

  • MacOS如何将.pem文件转为.pub文件

    MacOS如何将.pem文件转为.pub文件

    今日发现把博客从国内迁到Vultr之后,博客流量掉的厉害。无论如何得优化打开速度还是很慢,所以决定把网站迁移到aws上。

    aws的密匙我们这边生成的是.pem格式的文件,如果我们是用SecureCRT等工具的话,无法直接选择到密匙,这里需要将.pem文件转化成.pub格式才行,下面我们详细说明记录一下。

    将密钥上传至Linux服务器,并修改权限。

    以文件aws.pem为例:

    chmod 400 aws.pem

    修改密钥格式为OpenSSH,如果询问,留空回车:

    ssh-keygen -p -f aws.pem
    

    生成公钥.pub文件:

    ssh-keygen -e -f aws.pem >> aws.pub

    这里生成的.pub文件之后,可以使用工具连接了。

  • AWS亚马逊ssh登录失败 Permissions 0644 for .pem are too open

    AWS亚马逊ssh登录失败 Permissions 0644 for .pem are too open

    说明

    AWS亚马逊ssh登录失败 Permissions 0644 for .pem are too open

    root@vultr:~# ssh-keygen -e -f aws-none.pem >> aws-none.pem.pub
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @ WARNING: UNPROTECTED PRIVATE KEY FILE! @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    Permissions 0644 for ‘aws-none.pem’ are too open.
    It is required that your private key files are NOT accessible by others.
    This private key will be ignored.
    Load key “aws-none.pem”: bad permissions

    解决方法


    问题在于yourPrivateKey.pem的权限为可读可写,如下

    $ ll
    total 24
    -rw——-@ 1 zgpeace staff 1.7K Feb 18 07:24 yourPrivateKey.pem

    解决为修改为只读权限即可

    chmod 400 yourPrivateKey.pem

    $ ll
    total 24
    -r——–@ 1 zgpeace staff 1.7K Feb 18 11:24 yourPrivateKey.pem

    在初始化系统的时候,引导也有说明

WeChat