centos7.9@ec2にapache2.4+php8+git2+composer2+laravel8+SQLite(MySQL)をインストールしてみた。なんて面倒なんだ…。久々にやったけど、lightsailやレンタルサーバのありがたみが分かるな。
1, そもそもapacheが入っていないのでインストール
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# パッケージを最新に更新する sudo yum update -y # apacheのインストール sudo yum install httpd -y # apacheの起動 sudo systemctl start httpd.service # 起動確認 sudo systemctl status httpd.service # apache自動起動を設定 sudo systemctl enable httpd.service # 確認 sudo systemctl is-enabled httpd.service |
2, ec2のインバウンドルールにHTTP(80)を追加
http://ec2のIPアドレスで、見れるか確認
ec2は再起動するとIPアドレスが変わるので注意。
EIPかroute53で対応するか、面倒なら管理画面から確認してアクセス。
3, そもそもphpも入っていないのでインストール
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) # remiレポジトリ追加 yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm # php8系がインストールできるか? yum list | grep php80 # php本体と必要なパッケージをインストール yum -y install php80 php80-php php80-php-mbstring php80-php-pdo php80-php-xml php80-php-fpm php80-php-gd php80-php-bcmath php80-php-json php80-php-mysqlnd --enablerepo=remi-php80 # 確認 php80 -v PHP 8.0.7 (cli) (built: Jun 1 2021 18:43:05) ( NTS gcc x86_64 ) Copyright (c) The PHP Group Zend Engine v4.0.7, Copyright (c) Zend Technologies # php80のフルパス which php80 /bin/php80 # シンボリックリンクを張る ln -sf /bin/php80 /usr/bin/php # phpだけで実行できた。 php -v PHP 8.0.7 (cli) (built: Jun 1 2021 18:43:05) ( NTS gcc x86_64 ) Copyright (c) The PHP Group Zend Engine v4.0.7, Copyright (c) Zend Technologies # php.iniも設定しておく vi /etc/opt/remi/php80/php.ini date.timezone = "Asia/Tokyo" mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = pass mbstring.http_output = pass mbstring.encoding_translation = Off mbstring.detect_order = auto mbstring.substitute_character = none; mbstring.strict_detection = Off # memory_limit = 128M #メモリ使用量の上限 memory_limit = 1G # post_max_size = 8M #POSTデータの最大サイズ ※1回のアップロードファイルすべての合計サイズ post_max_size = 1G # upload_max_filesize = 2M #1ファイルあたりの最大アップロードサイズ upload_max_filesize = 1G |
https://qiita.com/miriwo/items/b25f9d4d74b7103f6ff6
4,composerも入ってないのでインストール
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# ダウンロード php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" # インストール php composer-setup.php # インストーラー削除 php -r "unlink('composer-setup.php');" # composer本体をパスが通っているディレクトリに移動 sudo mv composer.phar /usr/local/bin/composer # 実行出来るか確認 php /usr/local/bin/composer #パスを通す echo "export PATH=~/.config/composer/vendor/bin:$PATH" >> ~/.bash_profile source ~/.bash_profile # インストール完了 composer -V Composer version 2.1.3 2021-06-09 16:31:20 |
5, gitも入ってないのでインストール
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# レポジトリ導入 sudo yum install \ https://repo.ius.io/ius-release-el7.rpm \ https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm # インストールしようとすると、参考URLの通り、依存性エラーになる sudo yum install git --enablerepo=ius --disablerepo=base,epel,extras,updates Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * remi-safe: ftp.riken.jp ius | 1.3 kB 00:00:00 ius/x86_64/primary | 109 kB 00:00:00 ius 495/495 Resolving Dependencies --> Running transaction check ---> Package git224.x86_64 0:2.24.4-1.el7.ius will be installed --> Processing Dependency: perl-Git = 2.24.4-1.el7.ius for package: git224-2.24.4-1.el7.ius.x86_64 --> Processing Dependency: git-core-doc = 2.24.4-1.el7.ius for package: git224-2.24.4-1.el7.ius.x86_64 --> Processing Dependency: git-core = 2.24.4-1.el7.ius for package: git224-2.24.4-1.el7.ius.x86_64 --> Processing Dependency: emacs-filesystem >= 24.3 for package: git224-2.24.4-1.el7.ius.x86_64 --> Processing Dependency: perl(Term::ReadKey) for package: git224-2.24.4-1.el7.ius.x86_64 --> Processing Dependency: perl(Git::I18N) for package: git224-2.24.4-1.el7.ius.x86_64 --> Processing Dependency: perl(Git) for package: git224-2.24.4-1.el7.ius.x86_64 --> Processing Dependency: libsecret-1.so.0()(64bit) for package: git224-2.24.4-1.el7.ius.x86_64 --> Running transaction check ---> Package git224.x86_64 0:2.24.4-1.el7.ius will be installed --> Processing Dependency: emacs-filesystem >= 24.3 for package: git224-2.24.4-1.el7.ius.x86_64 --> Processing Dependency: perl(Term::ReadKey) for package: git224-2.24.4-1.el7.ius.x86_64 --> Processing Dependency: libsecret-1.so.0()(64bit) for package: git224-2.24.4-1.el7.ius.x86_64 ---> Package git224-core.x86_64 0:2.24.4-1.el7.ius will be installed --> Processing Dependency: libpcre2-8.so.0()(64bit) for package: git224-core-2.24.4-1.el7.ius.x86_64 ---> Package git224-core-doc.noarch 0:2.24.4-1.el7.ius will be installed ---> Package git224-perl-Git.noarch 0:2.24.4-1.el7.ius will be installed --> Processing Dependency: perl(Error) for package: git224-perl-Git-2.24.4-1.el7.ius.noarch --> Finished Dependency Resolution Error: Package: git224-2.24.4-1.el7.ius.x86_64 (ius) Requires: emacs-filesystem >= 24.3 Error: Package: git224-2.24.4-1.el7.ius.x86_64 (ius) Requires: perl(Term::ReadKey) Error: Package: git224-perl-Git-2.24.4-1.el7.ius.noarch (ius) Requires: perl(Error) Error: Package: git224-2.24.4-1.el7.ius.x86_64 (ius) Requires: libsecret-1.so.0()(64bit) Error: Package: git224-core-2.24.4-1.el7.ius.x86_64 (ius) Requires: libpcre2-8.so.0()(64bit) You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest # 個別にパッケージインストールしたら行けた。 sudo yum -y install http://mirror.centos.org/centos/7/os/x86_64/Packages/libsecret-0.18.6-1.el7.x86_64.rpm sudo yum -y install https://repo.ius.io/7/x86_64/packages/g/git224-2.24.4-1.el7.ius.x86_64.rpm # インストール完了 git --version git version 2.24.4 |
6, zip/unzipもインストールされてない…。
1 |
yum insatall -y zip unzip |
7, laravel8のインストール
1 2 3 4 5 6 7 8 |
cd /var/www/html composer create-project laravel/laravel laravel8 昔懐かしいディレクトリの中身が見えた…。 http://ec2のIPアドレス/laravel8/public/ # apache再起動したら見えた sudo systemctl restart httpd |
https://www.ritolab.com/entry/184
https://awesome-linus.com/2019/05/24/laravel-sqlite-database/
7, SQLiteを使う
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# .envで、sqliteを指定。他はコメントアウト DB_CONNECTION=sqlite # DB_CONNECTION=mysql # DB_HOST=127.0.0.1 # DB_PORT=3306 # DB_DATABASE=laravel # DB_USERNAME=root # DB_PASSWORD= # 空のファイルを作る touch database/database.sqlite # 普通にマイグレーション出来た。 php artisan migrate Migration table created successfully. Migrating: 2014_10_12_000000_create_users_table Migrated: 2014_10_12_000000_create_users_table (11.13ms) Migrating: 2014_10_12_100000_create_password_resets_table Migrated: 2014_10_12_100000_create_password_resets_table (11.30ms) Migrating: 2019_08_19_000000_create_failed_jobs_table Migrated: 2019_08_19_000000_create_failed_jobs_table (10.43ms) |
https://blog.ver001.com/sqlite-phpliteadmin/
8, phpmyadminみたいなphpLiteAdminを使ってみる。
a, ダウンロード、unzip、フォルダ名をphpliteadminに変更して、laravel8/publicにアップロード
b, 設定ファイルを修正
phpliteadmin.config.sample.phpをphpliteadmin.config.phpにファイル名変更。database/database.sqliteのパスを記述
//directory relative to this file to search for databases (if false, manually list databases in the $databases variable)
$directory = ‘.’;
c, php7.4だと問題なくアクセスできたけど、php8には非対応?エラーになる…。4年以上開発がされてないからな。
PHP Fatal error: Uncaught Error: Class “MicroTimer” not found
https://qiita.com/zaburo/items/7518a432d915c061983f
9, しょうがないので、素直にmysqlをインストールしよう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# MariaDB関連ライブラリの確認と削除 rpm -qa | grep mariadb mariadb-libs-5.5.60-1.el7_5.x86_64 yum remove mariadb-libs rm -rf /var/lib/mysql/ # レポジトリをインストール rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm # インストールできるmysqlを探す。mysql8にしておこう yum repolist all | grep mysql # 2.2Gあるけどインストール yum install mysql-community-server # mysqlサービス開始 systemctl start mysqld.service # 再起動時にも起動する systemctl enable mysqld.service # 確認 systemctl status mysqld.service systemctl is-enabled mysqld.service # mysqlログから、rootのパスワードを確認。 grep password /var/log/mysqld.log 2021-06-25T04:41:25.114916Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ここにパスワードが表示される # rootの新しいパスワードを入れたり(同じでも大丈夫だった)、リモート接続を拒否したり、テストDB削除したり…全部ENTER連打でOK mysql_secure_installation |
なんて面倒なんだ…。久々にやったけど、lightsailやレンタルサーバのありがたみが分かるな。