さくらのレンタルサーバに Node.js をインストールするための OpenSSL と Node.js のインストール方法のメモ。(*「さくらのレンタルサーバ上で Node.js (npm) を使えるようにする」を拝見させていただき無事インストールできました。)
OpenSSLインストール
ソースコード取得
% mkdir $HOME/openssl % cd $HOME/openssl % curl -sSf https://www.openssl.org/source/openssl-1.1.1s.tar.gz -O
makeファイル作成
% tar zxf openssl-1.1.1s.tar.gz % cd openssl-1.1.1s % ./config --prefix=/home/xxxxx/openssl --openssldir=/home/xxxxx/local/openssl
Operating system: amd64-whatever-freebsd Configuring OpenSSL version 1.1.1s (0x1010113fL) for BSD-x86_64 Using os-specific seed configuration Creating configdata.pm Creating Makefile ********************************************************************** *** *** *** OpenSSL has been successfully configured *** *** *** *** If you encounter a problem while building, please open an *** *** issue on GitHub <https://github.com/openssl/openssl/issues> *** *** and include the output from the following command: *** *** *** *** perl configdata.pm --dump *** *** *** *** (If you are new to OpenSSL, you might want to consult the *** *** 'Troubleshooting' section in the INSTALL file first) *** *** *** **********************************************************************
makeファイルからコンパイル
% make
/home/rs/perl/5.32/bin/perl "-I." -Mconfigdata "util/dofile.pl" "-oMakefile" include/crypto/bn_conf.h.in > include/crypto/bn_conf.h /home/rs/perl/5.32/bin/perl "-I." -Mconfigdata "util/dofile.pl" "-oMakefile" include/crypto/dso_conf.h.in > include/crypto/dso_conf.h /home/rs/perl/5.32/bin/perl "-I." -Mconfigdata "util/dofile.pl" "-oMakefile" include/openssl/opensslconf.h.in > include/openssl/opensslconf.h make depend && make _all cc -I. -Iinclude -fPIC -pthread -Wa,--noexecstack -Qunused-arguments -Wall -O3 -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/home/sites/local/openssl\"" -DENGINESDIR="\"/home/sites/openssl/lib/engines-1.1\"" -D_THREAD_SAFE -D_REENTRANT -DNDEBUG -MMD -MF apps/app_rand.d.tmp -MT apps/app_rand.o -c -o apps/app_rand.o apps/app_rand.c . . . /home/rs/perl/5.32/bin/perl "-I." -Mconfigdata "util/dofile.pl" "-oMakefile" apps/tsget.in > "apps/tsget.pl" chmod a+x apps/tsget.pl /home/rs/perl/5.32/bin/perl "-I." -Mconfigdata "util/dofile.pl" "-oMakefile" tools/c_rehash.in > "tools/c_rehash" chmod a+x tools/c_rehash /home/rs/perl/5.32/bin/perl "-I." -Mconfigdata "util/dofile.pl" "-oMakefile" util/shlib_wrap.sh.in > "util/shlib_wrap.sh" chmod a+x util/shlib_wrap.sh
% ls ACKNOWLEDGEMENTS Makefile README.ENGINE crypto libcrypto.map ms AUTHORS NEWS README.FIPS demos libcrypto.pc openssl.pc CHANGES NOTES.ANDROID VMS doc libcrypto.so os-dep CONTRIBUTING NOTES.DJGPP apps e_os.h libcrypto.so.1.1 ssl Configurations NOTES.PERL appveyor.yml engines libssl.a test Configure NOTES.UNIX build.info external libssl.map tools FAQ NOTES.VMS config fuzz libssl.pc util INSTALL NOTES.WIN config.com include libssl.so wycheproof LICENSE README configdata.pm libcrypto.a libssl.so.1.1
make install でインストール
% make install
make depend && make _build_libs created directory `/home/xxxxx/openssl/lib' *** Installing runtime libraries install libcrypto.so.1.1 -> /home/xxxxx/openssl/lib/libcrypto.so.1.1 install libssl.so.1.1 -> /home/xxxxx/openssl/lib/libssl.so.1.1 *** Installing development files created directory `/home/xxxxx/openssl/include' created directory `/home/xxxxx/openssl/include/openssl' install ./include/openssl/aes.h -> /home/xxxxx/openssl/include/openssl/aes.h . . . /home/xxxxx/openssl/share/doc/openssl/html/man7/X25519.html /home/xxxxx/openssl/share/doc/openssl/html/man7/X448.html -> /home/xxxxx/openssl/share/doc/openssl/html/man7/X25519.html /home/xxxxx/openssl/share/doc/openssl/html/man7/x509.html
Node.jsインストール
ソースコード取得
% curl -sSf https://nodejs.org/dist/v17.9.1/node-v17.9.1.tar.gz -O
makeファイル作成
% tar zxf node-v17.9.1.tar.gz % cd node-v17.9.1 % ./configure --shared-openssl --shared-openssl-includes=/home/xxxxx/openssl/include/ --shared-openssl-libpath=/home/xxxxx/openssl/lib/
Node.js configure: Found Python 3.8.12... INFO: configure completed successfully
インストール
% setenv LD_LIBRARY_PATH /home/xxxxx/openssl/lib % nohup make install DESTDIR=/home/xxxxx/local PREFIX=
パスを通す
setenv PATH ${PATH}:/home/xxxxx/local/bin setenv LD_LIBRARY_PATH /home/xxxxx/openssl/lib
設定内容反映
source .cshrc
確認
nodeバージョン
% node -v v17.9.1
npmバージョン
% npm -v 8.11.0
動作環境情報
さくらのレンタルサーバ スタンダード "node" v17.9.1 "npm" 8.11.0 "OpenSSL" 1.1.1s
コメント