[CentOS7][nginx][PHP7.3]Laravelをインストールしてみた。

いくつか躓いたので手順を残しておく。

既に運用済みのドメイン配下のディレクトリhogeで動作するようにした。

まずは必要なライブラリのインストール

yum -y install --enablerepo=remi,remi-php73 php-devel php-pecl-zip

composerのインストール

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php 
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer
composer global require "laravel/installer=~1.1"

nginxの設定

location ^~ /hoge{
    alias /var/www/hoge/public;
    try_files $uri $uri/ @laravel;
    index index.php;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME /var/www/hoge/public/index.php;
    }
}
    
location @laravel {
    rewrite /hoge/(.*)$ /hoge/index.php?/$1 last;
}

 

Laravelのインストール

~/.config/composer/vendor/bin/laravel new hoge
chown -R nginx:nginx hogehoge
systemctl restart nginx

Laravelの設定

vim /var/www/hogehoge/.env

APP_KEYに32桁のランダムな文字列を設定

その他環境に応じて設定

ブラウザでアクセスしてLaravelの画面が表示できたら成功。

[Windows10]USBでインストール

こちらからツールを今すぐダウンロードをクリックし、インストーラーを入手する。

次に8GB以上のUSBを用意しインストール用USBを作成する。

当環境のマザーボードでは、ASUS TUF H370-PRO GAMINGを使用しているが、デフォルトではブートドライブとしてUSBを認識しなかった。

BIOS設定画面よりCSMを有効にすることによって認識した。

[CentOS7][Nginx][PHP]7.3をインストール

WordPressで推奨されるPHPのバージョンが7.3以上だったので重い腰を上げてバージョンアップをした。

PHPを全部削除

yum remove php*

7.3をインストール

yum -y --enablerepo=remi-php73,epel install php-fpm php-gd php-gmp php-mbstring php-mcrypt php-opcache php-pdo php-pear-MDB2-Driver-mysqli php-pecl-memcached php-pecl-msgpack php-xml

実行ユーザーがデフォルトだとapacheなのでnginxへ変更

vim /etc/php-fpm.d/www.conf
-user = apache
+user = nginx

-group = apache
+group = nginx

php-fpmを再起動および、バージョンの確認

systemctl restart php-fpm
php -v

ここまでで問題なければ終了。

[C++]プロセスで使用中のメモリ使用量を出力

現在のプロセスのメモリ使用量を出力する機会があったのでメモを残す。

事前準備としてpsapi.libをリンクしておくこと。

#include <Windows.h>
#include <Psapi.h>

…

HANDLE hProce = GetCurrentProcess();
PROCESS_MEMORY_COUNTERS_EX pmc;
GetProcessMemoryInfo(
  hProc,
  (PROCESS_MEMORY_COUNTERS*)&pmc,
  sizeof(hProc)
)
CloseHandle(hProc);

…

sprintf("%s\n",pmc.PrivateUsage);

 

[C++]Ping疎通確認するサンプル

ヘッダーファイル(icmp.hpp)

#pragma once
#include <stdio.h>
#include <WinSock2.h>
#include <WS2tcpip.h>
#include <iphlpapi.h>
#include <IcmpAPI.h>
class ICMP
{
public:
    ICMP();
    ~ICMP();
    int Ping(const char *HostAddress);
protected:
    HANDLE hIcmp;
    char *SendData = "ICMP";
    LPVOID ReplyBuffer;
    DWORD dwRetVal;
    DWORD buflen;
    PICMP_ECHO_REPLY pIcmpEchoReply;
    sockaddr_in addr;
    const char *HostAddress;
};

 

ソースファイル(icmp.cpp)

#include "icmp.hpp"
ICMP::ICMP()
{
    hIcmp = IcmpCreateFile();
    buflen = sizeof(ICMP_ECHO_REPLY) + strlen(SendData) + 1;
    ReplyBuffer = (VOID*)malloc(buflen);
}
int ICMP::Ping(const char *HostAddress)
{
    if (ReplyBuffer == NULL)
    {
        return 1;
    }
    memset(ReplyBuffer, 0, buflen);
    pIcmpEchoReply = (PICMP_ECHO_REPLY)ReplyBuffer;
    dwRetVal = IcmpSendEcho(hIcmp,
        InetPton(AF_INET, HostAddress, &addr.sin_addr.S_un.S_addr),
        SendData,
        strlen(SendData),
        NULL,
        ReplyBuffer,
        buflen,
        1000);
    if (dwRetVal != 0)          //PING成功
    {
        return 0;
    } else {
        return 1;
    }
}
ICMP::~ICMP()
{
    free(ReplyBuffer);
    IcmpCloseHandle(hIcmp);
}