ນີ້ແມ່ນຄໍາສັ່ງ apxs ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
apxs - ເຄື່ອງມື APache eXtenSion
ສະຫຼຸບສັງລວມ
apxs -g [ -S ຊື່=ມູນຄ່າ ] -n modname
apxs -q [ -v ] [ -S ຊື່=ມູນຄ່າ ] query ...
apxs -c [ -S ຊື່=ມູນຄ່າ ] [ -o dsofile ] [ -I incdir ] [ -D ຊື່=ມູນຄ່າ ] [ -L libdir ] [
-l libname ] [ -ຫອງນໍາ,compiler-ທຸງ ] [ -Wl,linker-flags ] ໄຟ ...
apxs -i [ -S ຊື່=ມູນຄ່າ ] [ -n modname ] [ -a ] [ -A ] dso-file ...
apxs -e [ -S ຊື່=ມູນຄ່າ ] [ -n modname ] [ -a ] [ -A ] dso-file ...
ບົດສະຫຼຸບ
apxs ແມ່ນເຄື່ອງມືສໍາລັບການກໍ່ສ້າງແລະຕິດຕັ້ງໂມດູນການຂະຫຍາຍສໍາລັບ Apache HyperText
ເຊີບເວີ Transfer Protocol (HTTP). ນີ້ແມ່ນບັນລຸໄດ້ໂດຍການກໍ່ສ້າງວັດຖຸແບ່ງປັນແບບເຄື່ອນໄຫວ
(DSO) ຈາກໜຶ່ງ ຫຼືຫຼາຍແຫຼ່ງ ຫຼືວັດຖຸ ໄຟ ເຊິ່ງຫຼັງຈາກນັ້ນສາມາດຖືກໂຫລດເຂົ້າໄປໃນ Apache
ເຊີບເວີພາຍໃຕ້ເວລາແລ່ນຜ່ານຄໍາສັ່ງ LoadModule ຈາກ mod_so.
ດັ່ງນັ້ນເພື່ອນໍາໃຊ້ກົນໄກການຂະຫຍາຍນີ້ເວທີຂອງທ່ານຕ້ອງສະຫນັບສະຫນູນຄຸນນະສົມບັດ DSO ແລະຂອງທ່ານ
Apache httpd binary ຕ້ອງໄດ້ຮັບການສ້າງຂຶ້ນດ້ວຍໂມດູນ mod_so. ເຄື່ອງມື apxs ອັດຕະໂນມັດ
ຈົ່ມຖ້າຫາກວ່ານີ້ບໍ່ແມ່ນກໍລະນີ. ທ່ານສາມາດກວດສອບນີ້ຕົວທ່ານເອງໂດຍການດໍາເນີນການດ້ວຍຕົນເອງ
ຄໍາສັ່ງ
$ httpd -l
ໂມດູນ mod_so ຄວນເປັນສ່ວນຫນຶ່ງຂອງບັນຊີລາຍຊື່ທີ່ສະແດງ. ຖ້າຄວາມຕ້ອງການເຫຼົ່ານີ້ແມ່ນ
ສໍາເລັດແລ້ວທ່ານສາມາດຂະຫຍາຍການເຮັດວຽກຂອງເຄື່ອງແມ່ຂ່າຍ Apache ຂອງທ່ານໄດ້ຢ່າງງ່າຍດາຍໂດຍການຕິດຕັ້ງຂອງທ່ານເອງ
ໂມດູນທີ່ມີກົນໄກ DSO ໂດຍການຊ່ວຍເຫຼືອຂອງເຄື່ອງມື apxs ນີ້:
$ apxs -i -a -c mod_foo.c
gcc -fpic -DSHARED_MODULE -I/path/to/apache/include -c mod_foo.c
ld -Bshareable -o mod_foo.so mod_foo.o
cp mod_foo.so /path/to/apache/modules/mod_foo.so
chmod 755 /path/to/apache/modules/mod_foo.so
[ການເປີດໃຊ້ໂມດູນ 'foo' ໃນ /path/to/apache/etc/httpd.conf]
$ apachectl restart
/path/to/apache/sbin/apachectl restart: httpd ບໍ່ແລ່ນ, ພະຍາຍາມເລີ່ມຕົ້ນ
[ວັນອັງຄານ 31 11:27:55 1998] [debug] mod_so.c(303): ໂມດູນທີ່ໂຫລດແລ້ວ foo_module
/path/to/apache/sbin/apachectl restart: httpd ເລີ່ມ
$_
ການໂຕ້ຖຽງ ໄຟ ສາມາດເປັນໄຟລ໌ແຫຼ່ງ C (.c), ໄຟລ໌ວັດຖຸ (.o) ຫຼືແມ້ກະທັ້ງຫ້ອງສະໝຸດ
ຮວບຮວມ (.a). ເຄື່ອງມື apxs ຮັບຮູ້ການຂະຫຍາຍເຫຼົ່ານີ້ໂດຍອັດຕະໂນມັດແລະອັດຕະໂນມັດ
ໃຊ້ໄຟລ໌ແຫຼ່ງ C ສໍາລັບການລວບລວມໃນຂະນະທີ່ພຽງແຕ່ໃຊ້ວັດຖຸແລະແຟ້ມຈັດເກັບສໍາລັບ
ໄລຍະການເຊື່ອມໂຍງ. ແຕ່ເມື່ອນໍາໃຊ້ວັດຖຸທີ່ລວບລວມໄວ້ລ່ວງຫນ້າດັ່ງກ່າວໃຫ້ແນ່ໃຈວ່າມັນຖືກລວບລວມ
ສໍາລັບລະຫັດເອກະລາດຕໍາແຫນ່ງ (PIC) ເພື່ອສາມາດນໍາໃຊ້ພວກມັນສໍາລັບການແບ່ງປັນແບບເຄື່ອນໄຫວ
ວັດຖຸ. ຕົວຢ່າງເຊັ່ນກັບ GCC ທ່ານພຽງແຕ່ຕ້ອງໃຊ້ -fpic. ສໍາລັບ C compilers ອື່ນໆ
ປຶກສາກັບຫນ້າຄູ່ມືຂອງມັນຫຼືເບິ່ງສໍາລັບ flags apxs ໃຊ້ເພື່ອລວບລວມໄຟລ໌ວັດຖຸ.
ສໍາລັບລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບການສະຫນັບສະຫນູນ DSO ໃນ Apache ອ່ານເອກະສານຂອງ mod_so ຫຼືບາງທີ
ເຖິງແມ່ນວ່າອ່ານໄຟລ໌ແຫຼ່ງ src/modules/standard/mod_so.c.
OPTIONS
ສາມັນ ທາງເລືອກໃນການ
-n modname
ນີ້ກໍານົດຊື່ໂມດູນຢ່າງຈະແຈ້ງສໍາລັບ -i (ຕິດຕັ້ງ) ແລະ -g (ແມ່ແບບ
ການຜະລິດ) ທາງເລືອກ. ໃຊ້ອັນນີ້ເພື່ອລະບຸຊື່ໂມດູນຢ່າງຈະແຈ້ງ. ສໍາລັບທາງເລືອກ -g
ນີ້ແມ່ນຕ້ອງການ, ສໍາລັບທາງເລືອກ -i ເຄື່ອງມື apxs ພະຍາຍາມກໍານົດຊື່ຈາກ
ແຫຼ່ງຫຼື (ເປັນຕົວຫຍໍ້) ຢ່າງຫນ້ອຍໂດຍການຄາດເດົາມັນຈາກຊື່ໄຟລ໌.
ການສອບຖາມ ທາງເລືອກໃນການ
-q ດໍາເນີນການສອບຖາມສໍາລັບຕົວແປແລະການຕັ້ງຄ່າສະພາບແວດລ້ອມທີ່ໃຊ້ໃນການສ້າງ httpd. ເມື່ອໃດ
invoked ໂດຍບໍ່ມີການ query ຕົວກໍານົດການ, ມັນພິມຕົວແປທີ່ຮູ້ຈັກທັງຫມົດແລະມູນຄ່າຂອງເຂົາເຈົ້າ.
ພາລາມິເຕີທາງເລືອກ -v ຮູບແບບຜົນຜະລິດລາຍຊື່. .PP ໃຊ້ອັນນີ້ເພື່ອດ້ວຍຕົນເອງ
ກໍານົດການຕັ້ງຄ່າທີ່ໃຊ້ເພື່ອສ້າງ httpd ທີ່ຈະໂຫລດໂມດູນຂອງທ່ານ. ຕົວຢ່າງ
ໃຊ້ INC=-I`apxs -q INCLUDEDIR` .PP ພາຍໃນ Makefiles ຂອງທ່ານເອງຖ້າທ່ານຕ້ອງການຄູ່ມື
ເຂົ້າເຖິງໄຟລ໌ຫົວ C ຂອງ Apache.
ການຕັ້ງຄ່າ ທາງເລືອກໃນການ
-S ຊື່=ມູນຄ່າ
ຕົວເລືອກນີ້ປ່ຽນການຕັ້ງຄ່າ apxs ທີ່ອະທິບາຍຂ້າງເທິງ.
ແມ່ແບບ ການຜະລິດ ທາງເລືອກໃນການ
-g ນີ້ສ້າງໄດເລກະທໍລີຍ່ອຍ ຊື່ (ເບິ່ງທາງເລືອກ -n) ແລະມີສອງໄຟລ໌: ຕົວຢ່າງ
ໄຟລ໌ແຫຼ່ງໂມດູນຊື່ mod_ຊື່.c ເຊິ່ງສາມາດໃຊ້ເປັນແມ່ແບບໃນການສ້າງ
ໂມດູນຂອງທ່ານເອງຫຼືເປັນການເລີ່ມຕົ້ນໄວສໍາລັບການຫຼີ້ນກັບກົນໄກ apxs. ແລະ ກ
Makefile ທີ່ສອດຄ້ອງກັນສໍາລັບການກໍ່ສ້າງແລະການຕິດຕັ້ງໂມດູນນີ້ງ່າຍຂຶ້ນ.
DSO ການລວບລວມ ທາງເລືອກໃນການ
-c ນີ້ສະແດງເຖິງການດໍາເນີນການລວບລວມ. ມັນທໍາອິດລວບລວມໄຟລ໌ແຫຼ່ງ C (.c)
of ໄຟ ເຂົ້າໄປໃນໄຟລ໌ວັດຖຸທີ່ສອດຄ້ອງກັນ (.o) ແລະຫຼັງຈາກນັ້ນສ້າງການແບ່ງປັນແບບໄດນາມິກ
ວັດຖຸໃນ dsofile ໂດຍການເຊື່ອມໂຍງໄຟລ໌ວັດຖຸເຫຼົ່ານີ້ບວກກັບໄຟລ໌ວັດຖຸທີ່ຍັງເຫຼືອ (.o
ແລະ .a) ຂອງ ໄຟ. ຖ້າບໍ່ມີທາງເລືອກ -o ຖືກລະບຸ, ໄຟລ໌ຜົນຜະລິດແມ່ນຄາດເດົາຈາກ
ຊື່ໄຟລ໌ທໍາອິດໃນ ໄຟ ແລະດັ່ງນັ້ນປົກກະຕິແລ້ວແມ່ນຄ່າເລີ່ມຕົ້ນຂອງ mod_ຊື່.ດັ່ງນັ້ນ.
-o dsofile
ລະບຸຊື່ໄຟລ໌ຂອງວັດຖຸທີ່ແບ່ງປັນແບບໄດນາມິກທີ່ສ້າງຂຶ້ນຢ່າງຈະແຈ້ງ. ຖ້າບໍ່
ລະບຸໄວ້ ແລະບໍ່ສາມາດຄາດເດົາຊື່ໄດ້ຈາກ ໄຟ ບັນຊີລາຍຊື່, ຊື່ຫຍໍ້
mod_unknown.so ຖືກນໍາໃຊ້.
-D ຊື່=ມູນຄ່າ
ຕົວເລືອກນີ້ຖືກສົ່ງຜ່ານໂດຍກົງໄປຫາຄໍາສັ່ງການລວບລວມ. ໃຊ້ນີ້ເພື່ອ
ເພີ່ມຄໍານິຍາມຂອງທ່ານເອງເຂົ້າໃນຂະບວນການສ້າງ.
-I incdir
ຕົວເລືອກນີ້ຖືກສົ່ງຜ່ານໂດຍກົງໄປຫາຄໍາສັ່ງການລວບລວມ. ໃຊ້ນີ້ເພື່ອ
ຕື່ມການຂອງທ່ານເອງປະກອບມີໄດເລກະທໍລີເພື່ອຊອກຫາຂະບວນການສ້າງ.
-L libdir
ທາງເລືອກນີ້ແມ່ນຜ່ານໂດຍກົງກັບຄໍາສັ່ງ linker. ໃຊ້ນີ້ເພື່ອເພີ່ມຂອງທ່ານ
ໄດເລກະທໍລີຫ້ອງສະຫມຸດຂອງຕົນເອງເພື່ອຄົ້ນຫາຂະບວນການສ້າງ.
-l libname
ທາງເລືອກນີ້ແມ່ນຜ່ານໂດຍກົງກັບຄໍາສັ່ງ linker. ໃຊ້ນີ້ເພື່ອເພີ່ມຂອງທ່ານ
ຫ້ອງສະຫມຸດຂອງຕົນເອງເພື່ອຄົ້ນຫາຂະບວນການສ້າງ.
-ຫອງນໍາ,compiler-ທຸງ
ທາງເລືອກນີ້ຜ່ານ compiler-ທຸງ ເປັນທຸງເພີ່ມເຕີມຕໍ່ກັບ libtool --mode=compile
ຄໍາສັ່ງ. ໃຊ້ອັນນີ້ເພື່ອເພີ່ມຕົວເລືອກສະເພາະຕົວລວບລວມຂໍ້ມູນໃນທ້ອງຖິ່ນ.
-Wl,linker-flags
ທາງເລືອກນີ້ຜ່ານ linker-flags ເປັນທຸງເພີ່ມເຕີມຕໍ່ກັບ libtool --mode=link
ຄໍາສັ່ງ. ໃຊ້ອັນນີ້ເພື່ອເພີ່ມຕົວເລືອກສະເພາະຕົວເຊື່ອມຕໍ່ທ້ອງຖິ່ນ.
-p ທາງເລືອກນີ້ເຮັດໃຫ້ apxs ເຊື່ອມຕໍ່ກັບຫ້ອງສະຫມຸດ apr / apr-util. ນີ້ແມ່ນເປັນປະໂຫຍດ
ເມື່ອລວບລວມບັນດາໂຄງການຜູ້ຊ່ວຍທີ່ໃຊ້ຫ້ອງສະຫມຸດ apr/apr-util.
DSO ການຕິດຕັ້ງ ແລະ ການຕັ້ງຄ່າ ທາງເລືອກໃນການ
-i ນີ້ຊີ້ໃຫ້ເຫັນການດໍາເນີນງານການຕິດຕັ້ງແລະການຕິດຕັ້ງຫນຶ່ງຫຼືຫຼາຍແບບເຄື່ອນໄຫວ
ແບ່ງປັນວັດຖຸເຂົ້າໄປໃນເຄື່ອງແມ່ຂ່າຍຂອງ ໂມດູນ ລະບົບ.
-a ນີ້ກະຕຸ້ນໂມດູນໂດຍການເພີ່ມເສັ້ນ LoadModule ທີ່ສອດຄ້ອງກັນໂດຍອັດຕະໂນມັດ
ໄປຫາໄຟລ໌ການຕັ້ງຄ່າ httpd.conf ຂອງ Apache, ຫຼືໂດຍການເປີດໃຊ້ມັນຖ້າມັນມີຢູ່ແລ້ວ.
-A ຄືກັນກັບທາງເລືອກ -a ແຕ່ຄໍາສັ່ງ LoadModule ທີ່ຖືກສ້າງຂື້ນແມ່ນຖືກນໍາຫນ້າດ້ວຍເຄື່ອງຫມາຍ hash.
(#), ie, ໂມດູນແມ່ນພຽງແຕ່ກະກຽມສໍາລັບການເປີດໃຊ້ງານຕໍ່ມາແຕ່ຖືກປິດໃຊ້ງານໃນເບື້ອງຕົ້ນ.
-e ນີ້ຊີ້ໃຫ້ເຫັນການປະຕິບັດການແກ້ໄຂ, ເຊິ່ງສາມາດນໍາໃຊ້ກັບຕົວເລືອກ -a ແລະ -A
ຄ້າຍຄືກັນກັບການປະຕິບັດງານ -i ເພື່ອແກ້ໄຂໄຟລ໌ການຕັ້ງຄ່າ httpd.conf ຂອງ Apache
ໂດຍບໍ່ມີການພະຍາຍາມຕິດຕັ້ງໂມດູນ.
ຕົວຢ່າງ
ສົມມຸດວ່າທ່ານມີໂມດູນ Apache ທີ່ມີຊື່ວ່າ mod_foo.c ເຊິ່ງຄວນຂະຫຍາຍ Apache
ການທໍາງານຂອງເຄື່ອງແມ່ຂ່າຍ. ເພື່ອເຮັດສິ່ງນີ້, ກ່ອນອື່ນ ໝົດ ທ່ານຕ້ອງລວບລວມແຫຼ່ງ C ເຂົ້າໃນ a
ວັດຖຸທີ່ໃຊ້ຮ່ວມກັນທີ່ເຫມາະສົມສໍາລັບການໂຫລດເຂົ້າໄປໃນເຄື່ອງແມ່ຂ່າຍຂອງ Apache ພາຍໃຕ້ເວລາແລ່ນຜ່ານຕໍ່ໄປນີ້
ຄໍາສັ່ງ:
$ apxs -c mod_foo.c
/path/to/libtool --mode=compile gcc ... -c mod_foo.c
/path/to/libtool --mode=link gcc... -o mod_foo.la mod_foo.slo
$_
ຫຼັງຈາກນັ້ນ, ທ່ານຕ້ອງປັບປຸງການຕັ້ງຄ່າ Apache ໂດຍໃຫ້ແນ່ໃຈວ່າຄໍາສັ່ງ LoadModule ແມ່ນ
ນໍາສະເຫນີເພື່ອໂຫລດວັດຖຸທີ່ແບ່ງປັນນີ້. ເພື່ອງ່າຍຂັ້ນຕອນນີ້ apxs ໃຫ້ວິທີການອັດຕະໂນມັດ
ເພື່ອຕິດຕັ້ງວັດຖຸທີ່ໃຊ້ຮ່ວມກັນໃນໄດເລກະທໍລີ "ໂມດູນ" ຂອງມັນແລະປັບປຸງໄຟລ໌ httpd.conf
ຕາມນັ້ນ. ນີ້ສາມາດບັນລຸໄດ້ໂດຍການແລ່ນ:
$ apxs -i -a mod_foo.la
/path/to/instdso.sh mod_foo.la /path/to/apache/modules
/path/to/libtool --mode=ຕິດຕັ້ງ cp mod_foo.la /path/to/apache/modules
...
chmod 755 /path/to/apache/modules/mod_foo.so
[ການເປີດໃຊ້ໂມດູນ 'foo' ໃນ /path/to/apache/conf/httpd.conf]
$_
ເສັ້ນທາງນີ້ມີຊື່
LoadModule foo_module modules/mod_foo.so
ຈະຖືກເພີ່ມໃສ່ໄຟລ໌ການຕັ້ງຄ່າຖ້າຍັງບໍ່ມີ. ຖ້າທ່ານຕ້ອງການໃຫ້ຄົນພິການນີ້
ຕາມຄ່າເລີ່ມຕົ້ນໃຊ້ຕົວເລືອກ -A, ie
$ apxs -i -A mod_foo.c
ສໍາລັບການທົດສອບໄວຂອງກົນໄກ apxs ທ່ານສາມາດສ້າງຕົວຢ່າງ Apache module template plus
Makefile ທີ່ສອດຄ້ອງກັນໂດຍຜ່ານ:
$ apxs -g -n foo
ການສ້າງ [DIR] foo
ກຳລັງສ້າງ [FILE] foo/Makefile
ກຳລັງສ້າງ [FILE] foo/modules.mk
ກຳລັງສ້າງ [FILE] foo/mod_foo.c
ກຳລັງສ້າງ [FILE] foo/.deps
$_
ຫຼັງຈາກນັ້ນ, ທ່ານສາມາດລວບລວມໂມດູນຕົວຢ່າງນີ້ທັນທີເຂົ້າໄປໃນວັດຖຸທີ່ໃຊ້ຮ່ວມກັນແລະໂຫລດມັນເຂົ້າໄປໃນ
ເຊີບເວີ Apache:
$ cd foo
$ ເຮັດໃຫ້ການໂຫຼດຄືນທັງຫມົດ
apxs -c mod_foo.c
/path/to/libtool --mode=compile gcc ... -c mod_foo.c
/path/to/libtool --mode=link gcc... -o mod_foo.la mod_foo.slo
apxs -i -a -n "foo" mod_foo.la
/path/to/instdso.sh mod_foo.la /path/to/apache/modules
/path/to/libtool --mode=ຕິດຕັ້ງ cp mod_foo.la /path/to/apache/modules
...
chmod 755 /path/to/apache/modules/mod_foo.so
[ການເປີດໃຊ້ໂມດູນ 'foo' ໃນ /path/to/apache/conf/httpd.conf]
apachectl restart
/path/to/apache/sbin/apachectl restart: httpd ບໍ່ແລ່ນ, ພະຍາຍາມເລີ່ມຕົ້ນ
[ວັນອັງຄານ 31 11:27:55 1998] [debug] mod_so.c(303): ໂມດູນທີ່ໂຫລດແລ້ວ foo_module
/path/to/apache/sbin/apachectl restart: httpd ເລີ່ມ
$_
ໃຊ້ apxs ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net